首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用<phase>实现Maven插件的串行执行

用<phase>实现Maven插件的串行执行
EN

Stack Overflow用户
提问于 2014-09-11 07:26:48
回答 2查看 253关注 0票数 0

我在pom.xml中有以下结构

代码语言:javascript
复制
<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可以吗?

P.S.:以下是阶段:http://maven.apache.org/ref/3.2.2/maven-core/lifecycles.html

EN

回答 2

Stack Overflow用户

发布于 2014-09-11 08:01:20

Maven不支持在生命周期中添加步骤(不编写新插件)。

如果您有复杂的构建步骤,并且绝对需要一个特定的order --这个顺序违反了标准的生命周期,那么Maven可能不是适合您的工具。考虑一下Gradle

如果您必须使用Maven,那么就停止使用这个插件。相反,使用antrun插件复制所有构建步骤,这样就可以使用一个Ant脚本完成所有工作。然后,在生命周期中找到一个地方,您希望所有步骤都能一次执行。

generate-sources是一个很好的地方,如果您需要在编译任何东西之前做一些事情。如果希望在编译和测试后运行代码,请使用prepare-package

有关完整的生命周期,请参见此处:参考文献

票数 1
EN

Stack Overflow用户

发布于 2014-09-11 16:36:51

如果您希望将不同插件的执行添加到相同的生命周期阶段,则执行顺序由pom文件中定义的顺序来定义。

因此,如果您选择将上述三个插件绑定到package阶段,则它们将按照给定的顺序执行。

当然,您可以使用antrun插件,它也可以工作,并将按照定义的顺序隐式执行步骤,而无需考虑Maven的默认行为。

您还可以使用exec-maven-plugin在特定的生命周期阶段执行脚本,但这可能不是一个好的解决方案,因为脚本依赖于操作系统。或者您可以使用groovy插件来执行groovy代码中的一些步骤。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25781529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档