从Maven-Antrun-Plugin调用<if>

时间:2017-07-06 12:19:21

标签: maven ant dependencies ant-contrib

我使用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>

1 个答案:

答案 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>

我知道这可能不是解决您问题的最佳/最有效的解决方案,但这正是我目前正在使用的内容,它没有任何问题。