当插件目标执行时:声明阶段之前或之后?

Enr*_*ico 4 maven-2 maven-plugin maven-3 maven

我有一个关于maven pom的问题.我有这个pom.xml

<plugins>
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <echo>Hello world!</echo>
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)

什么时候执行目标?包装阶段之前或之后?

(对于Maven生命周期,请参阅Maven生命周期)

Mar*_*szS 6

插件目标声明的阶段(package)开始之后和下一阶段(pre-integration-test)开始之前执行.

在这个scenerio maven命令中

mvn package
Run Code Online (Sandbox Code Playgroud)

应该打印 Hello World

一个阶段的多次执行:

注意:在Maven 2.0.5及更高版本中,绑定到阶段的多个目标的执行顺序与它们在POM中声明的顺序相同,但不支持同一插件的多个实例.同一插件的多个实例被分组以一起执行并在Maven 2.0.11及更高版本中进行排序.

当给定与特定阶段匹配的多个执行时,它们将按照POM中指定的顺序执行,并且首先运行继承的执行.

资料来源:构建生命周期简介