java - 使用 <phase> 在 Maven 中串行执行插件

标签 java maven maven-2 maven-3 maven-plugin

我在 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>    

我想实现插件的串行执行:

  1. 删除一些文件夹和一些文件(第一个插件)
  2. 移动文件(第二个插件)
  3. 运行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/

相关文章:

scala - 忽略 Maven/Scala 单元测试文件

Maven - 在 JUnit 测试之前将 webapp 部署到 tomcat

java - 为什么更高效的算法运行速度更慢?

java - 以编程方式执行 Google Assistant

java - 使用 h2 数据库的 JUnit 测试表现异常

maven - 如何在 Maven 中管理编译时依赖

java - 执行doInBackground()时出错,不知道是什么问题

java - Hadoop中的MapReduce程序,实现了一个简单的 “People You Might Know”

java - 使用 Maven 部署 Azure Spring 应用程序会导致错误 : Invalid arguments: DeploymentSettings must be provided

java - arquillian 中的 “IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory”