按照使用页面(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”字样。
就像插件配置甚至不存在一样。
答案 0 :(得分:13)
<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>