I need to build 3 independent maven projects using a build.bat file (because of tycho aggregation is not an option - see comments on romaintaz answer). I have tried (executed from the build folder - see below):
cd ../projectA
mvn clean install -U
cd ..
cd ../projectB
mvn clean install -U
cd ..
cd ../projectC
mvn clean install -U
where the folder structure of the projects are:
build
|--> build.bat
projectA
|--> pom.xml
projectB
|--> pom.xml
projectC
|--> pom.xml
but only projectA is build projectB and projectC are skipped. Any ideas on how to modify the above batfile so the following project is build if the previous was build successfully?
Почему бы вам не попробовать создать родительский проект ?
Похоже, у вас следующая структура:
someDirectory
+- projectA
+- pom.xml
+- projectB
+- pom.xml
+- projectC
+- pom.xml
Просто создайте pom.xml
в корневом каталоге (в моем примере someDirectory
) и определите список модулей, которые представляют собой projectA
, projectB
и projectC
. Эта помпа будет выглядеть так:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>my.company</groupId>
<artifactId>my-aggregation-project</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>projectA</module>
<module>projectB</module>
<module>projectC</module>
</modules>
</project>
отмечает:
<packaging>pom</packaging>
, так как это не «настоящий» Java-проект. module
должно совпадать с именем каталога, в котором размещен субмодуль. Теперь, выполнив это, при запуске команды Maven в корневом каталоге Maven автоматически запустит эту команду на всех модулях. Поэтому, если вы просто запустите mvn clean install
в корневом каталоге, он запустит эту команду в трех ваших модулях.
Важное примечание: Я говорю здесь о функции агрегации в Maven. Не наследование . Это означает, что не требуется, чтобы каждый модуль имел корневой проект в качестве родительского.
Я думаю, что использование% ERRORLEVEL% завершит + ответ FrVaBe. Первоначально из Кунал
call mvn -f ProjectA\pom.xml clean install if not "%ERRORLEVEL%" == "0" goto error
call mvn -DskipTests=true -f ProjectC\pom.xml clean install if not "%ERRORLEVEL%" == "0" goto error
exit
:error @echo Build Failed pause