我正在尝试在maven generate-sources阶段运行一个ant任务。
然而,在我意识到许多非生产性的“成功”之后,无论我进入什么,构建总是成功。
这是我模块的pom.xml的插件配置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<configuration>
<tasks>
<fail message="Something wrong here."/>
</tasks>
</configuration>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
它仍然成功。如果我放置一个坏的蚂蚁文件。仍然成功。
有谁知道我在这里做错了什么?
编译/清理/安装/部署阶段都可以正常工作。只是“生成源”根本不起作用。
我的settings.xml文件只包含Repo信息 感谢您的任何建议
修改
我已经能够将错误缩小一点。
<configuration>
<target>
<echo message="hello ant, from Maven!"/>
<echo>Maybe this will work?</echo>
</target>
</configuration>
如果将其置于插件的配置中,则不在执行标记的嵌套配置中。并运行“mvn antrun:run”我看到回声。但是如果我把它放在执行元素的嵌套配置中,它就不显示......我的mvn目标和antrun指令之间是否缺少某些链接?
我不明白。相同的配置在执行/执行标记之外运行,但不在。
之内答案 0 :(得分:1)
解决方案 * 解决方案 * 解决方案 啊,我找到了! 在我的pom.xml中,我在'pluginManagement'下配置了所有'plugins''plugin'。这个'pluginManagement'配置插件不是为了这个项目,而是为了所有的孩子项目。实际上是实现插件的所有孩子的父默认配置文件..我只是删除了'pluginManagement'标签,它的工作原理......
谢天谢地。我一直在看这一整天......
答案 1 :(得分:0)
尝试将<failOnError>false</failOnError>
添加到执行中。
根据documentation,此参数&#34;指定ant构建中的失败是否导致Maven构建失败。如果此值为&#39; true&#39;,即使ant构建失败,Maven构建也将继续。如果它是“假”,那么如果ant构建失败,则Maven构建将失败。&#34;
这对我来说是违反直觉的。我认为&#34; true&#34;的默认值如果ant构建失败,会导致Maven构建失败,但这不是文档似乎在说什么。