Я хотел бы запустить сборку Ant build.xml
из родительского POM.Запуск внешнего файла Ant из родительского pom
Это может выглядеть следующим образом:
<project>
<groupId>my.group</groupId>
<artifactId>my-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>initialize</phase>
<configuration>
<tasks>
<ant antfile="build.xml"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Это прекрасно работает, если я использую этот модуль в качестве родителя ПОМ. Проблема в этой строке <ant antfile="build.xml"/>
. Хотя этот POM работает как родительский POM, для плагина нет файла build.xml
.
Как запустить скрипт Ant из файла (находится в родительском POM) во время всей дочерней сборки?
PS Я попытался упаковать build.xml
под некоторым классификатором, чтобы сделать его доступным для детей. Но я понятия не имею, как я могу извлечь свой упакованный build.xml
до antrun:run
.
PPS
Структура проекта:
<root>
+ Parent POM
| +- pom.xml
| +- build.xml
|
+ Component1
| + Child1
| | +- src/main/java
| | +- ...
| | +- pom.xml
| |
| + Child2
| +- src/main/java
| +-...
| +- pom.xml
|
+ Component2
+ Child3
| +- src/main/java
| +- ...
| +- pom.xml
|
+ Child4
+- src/main/java
+-...
+- pom.xml
В качестве бонуса: Я также хотел бы знать ответ на ситуации, когда родитель POM получить построены и развернуты независимо друг от друга (не зная собственного ребенка), а дети создаются, имея доступ только к родительским развернутым артефактам (а не к исходному коду).
Хорошо. Так вы используете Maven из корневого проекта? И можете ли вы опубликовать весь стек, если он есть? – Tunaki
Я запускаю свою сборку из обоих: корневых и дочерних каталогов. Исключением, которое я получаю, является 'java.io.FileNotFoundException: \ Component1 \ Child2 \ build.xml' –
Что вы имеете в виду от обоих? Обычно вы должны запускать 'mvn clean install' только с' '. –
Tunaki