我在pom.xml中有以下结构
<profile>
<id> x </id>
<build>
<finalName> y </finalName>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<!-- DELETE SOME FOLDERS AND SOME FILES -->
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<!-- MOVE A FILE -->
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version> 1.6 </version>
<executions>
<execution>
<phase> <!-- WHAT COMES HERE ? --> </phase>
<configuration>
<!-- I EXECUTE CMD FILE HERE -->
</configuration>
<goals>
<goal> run </goal>
</goals>
<execution>
<executions>
</plugin>
</plugins>
</build>
</profile> 我想实现插件的串行执行:
我应该使用什么使<phase>具有上面的顺序(顺序执行)?这有关系吗?例如,使用pre-integration-test可以吗?
P.S.:以下是阶段:http://maven.apache.org/ref/3.2.2/maven-core/lifecycles.html
发布于 2014-09-11 08:01:20
Maven不支持在生命周期中添加步骤(不编写新插件)。
如果您有复杂的构建步骤,并且绝对需要一个特定的order 和--这个顺序违反了标准的生命周期,那么Maven可能不是适合您的工具。考虑一下Gradle。
如果您必须使用Maven,那么就停止使用这个插件。相反,使用antrun插件复制所有构建步骤,这样就可以使用一个Ant脚本完成所有工作。然后,在生命周期中找到一个地方,您希望所有步骤都能一次执行。
generate-sources是一个很好的地方,如果您需要在编译任何东西之前做一些事情。如果希望在编译和测试后运行代码,请使用prepare-package。
有关完整的生命周期,请参见此处:参考文献
发布于 2014-09-11 16:36:51
如果您希望将不同插件的执行添加到相同的生命周期阶段,则执行顺序由pom文件中定义的顺序来定义。
因此,如果您选择将上述三个插件绑定到package阶段,则它们将按照给定的顺序执行。
当然,您可以使用antrun插件,它也可以工作,并将按照定义的顺序隐式执行步骤,而无需考虑Maven的默认行为。
您还可以使用exec-maven-plugin在特定的生命周期阶段执行脚本,但这可能不是一个好的解决方案,因为脚本依赖于操作系统。或者您可以使用groovy插件来执行groovy代码中的一些步骤。
https://stackoverflow.com/questions/25781529
复制相似问题