我是maven的新手,并了解如何以及何时在插件中执行阶段/目标
说我在我的pom中有以下代码片段
<plugin>
<groupId>org.codehaus.modello</groupId>
<artifactId>modello-maven-plugin</artifactId>
<version>1.4</version>
</plugin>
现在,如果我执行mvn install,将执行安装之前的modello的所有阶段(以及与每个阶段相对应的所有目标)。 从右吗
但如果进行以下修改以引入特定目标,则只会执行一个目标,即java目标
(因为它在generate-sources
阶段之前的install
阶段)。 这是正确的吗?
<plugin>
<groupId>org.codehaus.modello</groupId>
<artifactId>modello-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
</plugin>
答案 0 :(得分:1)
不,它不会那样工作。首先,请使用mvn verify
(而不是安装),除非您真的希望将项目复制到本地存储库。
如果您只指定了一个插件,它是不默认生命周期的一部分(例如,已经为默认生命周期指定了maven-compiler-plugin,那么所有的jar都需要编译,对吗?),什么都不会发生。因此,您需要指定需要在执行块中执行哪些目标。在某些情况下,目标具有绑定到的默认阶段,例如, modello:java默认绑定到generate-sources
阶段。在这种情况下,您不必在执行块中指定<phase>
。