我在 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>
我想实现插件的串行执行:
- 删除一些文件夹和一些文件(第一个插件)
- 移动文件(第二个插件)
- 运行cmd文件(第三个插件)
我应该用什么来 <phase>
有上面的顺序(顺序执行)?相关吗?使用pre-integration-test
可以吗例如?
PS:以下是阶段:http://maven.apache.org/ref/3.2.2/maven-core/lifecycles.html
最佳答案
Maven 不支持向生命周期添加步骤(无需编写新插件)。
如果您有复杂的构建步骤,并且绝对需要特定的顺序并且此顺序违反了标准生命周期,那么 Maven 可能不是适合您的工具。考虑Gradle相反。
如果您必须使用 Maven,请停止使用插件。相反,使用 antrun 插件复制所有构建步骤,以便一切都通过单个 Ant 脚本完成。然后,在生命周期中找到您希望同时执行所有步骤的位置。
如果您需要在编译任何内容之前完成某些操作,generate-sources
是一个好地方。如果您想在编译和测试后运行代码,请使用 prepare-package
。
请参阅此处了解完整的生命周期:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
关于java - 使用 <phase> 在 Maven 中串行执行插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25781529/