Mavent AntRun不执行任务

时间:2013-01-25 17:10:35

标签: maven maven-antrun-plugin

按照使用页​​面(http://maven.apache.org/plugins/maven-antrun-plugin/usage.html)上的说明和其他Stackoverflow问题,我一直试图让Ant任务从我的Maven构建。我简化了我要做的事情,简单回应一下“Hello,Maven”,但我没有得到任何东西。

我正在执行Maven:

mvn package

我希望这个特定的任务在打包之前运行(“prepare-package”),所以我先尝试了这个阶段,但是当这个阶段没有用时,我试着让我的阶段只是“打包”。

这是我尝试过的一个插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>id.package.ant</id>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <echo message="Hello, maven"/>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

这是我尝试的另一个:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>id.package.ant</id>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <echo message="Hello, maven"/>
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>

我也尝试过没有&lt; id&gt;。

我没有错误,根本没有输出。即使我执行Maven -debug,输出中也没有出现“echo”字样,输出中出现“antrun”字样,输出中出现“hello”字样。

就像插件配置甚至不存在一样。

4 个答案:

答案 0 :(得分:13)

安德鲁在评论中得到了正确答案。当我将我的maven-antrun-plugin AS-IS(使用<target>而不是<tasks>)OUT <pluginManagement>移动到一个独立的<plugins>时,我的Ant任务开始了执行。

令人惊讶的是,之前有多少Google和Stackoverflow的搜索未返回其他问题,但现在我更了解插件管理。谢谢,安德鲁!

答案 1 :(得分:7)

将蚂蚁从1.7改为1.8解决了我的问题。

答案 2 :(得分:2)

我遇到了类似的问题,它只在我添加1.8版本标签时才有效。它不会起作用。这可能有所帮助。

答案 3 :(得分:1)

我遇到了类似的问题。在我的情况下,这是因为我没有为执行设置<id>...</id>标记。以下是有效的XML:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>test</id> <!-- has to be set -->
            <phase>validate</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target name="test">
                    <echo message="testing 1 2 3"/>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>