当我在示例插件中偶然发现execution
时,我正在阅读lifecycle的内容:
<execution>
<id>id.pre-clean</id>
<phase>pre-clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>pre-clean phase</echo>
</tasks>
</configuration>
</execution>
这表明可以在某些阶段(在这种情况下,run
)运行目标(在这种情况下,目标是pre-clean
)。
在同一页中,我读到:
好吧,目标可以具有默认的阶段绑定,如下所述。如果目标具有默认的阶段绑定,那么它将在该阶段执行。
这引发了一个问题,插件的用户是否有可能针对插件的开发者覆盖目标的默认阶段?例如,使compile
的目标maven-compiler-plugin
在阶段install
中执行,而不是在默认阶段compile
中执行(虽然这永远不会做,但仅作为示例) ?