Я использую maven-antrun-plugin в моем pom.xml с внешним файлом ant. В документе плагина сказано:
Все свойства, доступные Maven, также доступны в целевой конфигурации. Однако вы можете вызвать внешний сценарий сборки Ant с помощью задачи ant. Чтобы избежать конфликтов имен, во внешнюю сборку Ant передается только часть свойств. Сюда входят все свойства, определенные в разделе свойств POM. Он также включает версии с префиксом некоторых из часто используемых свойств Maven.
Итак, вот мой pom, в котором я определяю свойство test.prop:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>testant</groupId>
<artifactId>testant</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<test.prop>TestPropValue</test.prop>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>optional</artifactId>
<version>1.5.4</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>generate-index-properties</id>
<phase>install</phase>
<configuration>
<tasks>
<!--<property name="test.prop" value="${test.prop}"/>-->
<ant antfile="build.xml">
<target name="echo-prop"/>
</ant>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
И просто пытаюсь повторить это свойство в build.xml:
<project default="test">
<target name="echo-prop">
<echo>${test.prop}</echo>
</target>
</project>
Вот что я получаю:
echo-prop:
[echo] ${test.prop}
Таким образом, свойство не разрешено должным образом, согласно документу. И работает нормально только в том случае, если я раскомментирую строку с явным объявлением свойства в теге "задачи". Не могли бы вы помочь мне понять, что я делаю не так?
Спасибо!