我使用Maven-Antrun-Plugin 1.8来执行包含<if>
的Ant目标。
我读到ant-contrib
是运行它所必需的,因此我将依赖项包含在ant-contrib:ant-contrib:1.0b3
中。这会导致ant:ant:1.5
传递加载,这会破坏构建。如果我对ant 1.5进行了排除,则<if>
再次未定义。
总结:我需要一个maven-antrun-plugin的有效依赖列表,允许我调用<if>
。
答案 0 :(得分:2)
也许以下内容可能对您的Maven pom有所帮助:
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>ID_HERE</id>
<phase>PHASE_HERE</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath"/>
<if>
<!-- Some if condition here -->
<then>
<!-- Ant tasks to execute if condition is true -->
</then>
</if>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
</plugin>
</plugins>
</build>
我知道这可能不是解决您问题的最佳/最有效的解决方案,但这正是我目前正在使用的内容,它没有任何问题。