没有插件目标绑定到maven阶段

时间:2016-10-09 06:05:35

标签: maven maven-plugin

maven相当新鲜。通过在official website阅读maven文档,我知道在默认的lifeCycle中,有21个阶段,包括validateinitializegenerate-sourcesprocess-sources,{{ 1}},generate-resourcesprocess-resourcescompileprocess-classesgenerate-test-sourcesprocess-test-sourcesgenerate-test-resources,{{1} },process-test-resourcestest-compiletestprepare-packagepackagepre-integration-testintegration-testpost-integration-testverify

但是当我看到Built-in Lifecycle Bindings时,我发现没有插件目标绑定到installdeployvalidate等各个阶段。
因此,如果我运行命令initialize,那么没有插件目标的阶段会被执行吗? 或者这些阶段的插件目标是固定的,我们无法控制它们,因此无需在文档中编写它们。每次这些阶段(例如verifymvn packagevalidate等都会自动执行。

1 个答案:

答案 0 :(得分:0)

首先,默认情况下没有绑定到阶段validateinitializeverify的插件(以及其他一些阶段)。

如果您运行mvn package所有阶段都将被执行,但如果没有绑定到阶段的插件,您将无法看到它。如果您运行package阶段,所有阶段(包括package阶段本身)将从头开始执行validateinitializegenerate-sources等等...... < / p>

有时将插件绑定到initialize等阶段很有用。例如build-number-maven-plugin就是这种情况。

verify之前的阶段,pre-integration-testintegration-testpost-integration-test对于运行可由maven-failsafe-plugin处理的集成测试非常有用。单元测试由maven-surefire-plugin处理。

generate-sources这样的阶段经常被源生成插件jaxb2-maven-plugin或其他像插件处理器生成插件使用...