Maven:生命周期阶段与目标之间的关系

IAm*_*aja 16 apache maven

我在这里看到一些Maven概念中的"森林穿过树林"很难过.据我所知,Maven的预配置了所谓的"压摆构建生命周期阶段,与开始" validate,并test和结束deploy.

我从Ant来到Maven,你将主要构建阶段组织成目标(可以线性方式依赖于其他目标),然后将目标分解为程序任务.Maven似乎以目标的形式支持这一点.

我的问题(因为我习惯了建筑物的思维的目标和任务而言)是:如何做这些生命周期阶段(package,verify,等)涉及到的目标?是否需要配置哪个目标在哪个阶段运行,或者这是由Maven以某种方式自动完成的?

或者,目标是否预定义了它们属于哪个阶段?

我只是没有看到如何订购目标来创建适合他们或他们的组织的自定义构建.

提前感谢您的清晰度!

Ale*_*yak 11

许多Maven插件将特定目标(mojo)绑定到特定的生命周期阶段.

例如,寻找目标的文件maven-jar-plugin:jar.它说:

默认情况下绑定到生命周期阶段:包.

此外,生命周期本身也指定了每个阶段需要运行的工具.对于默认的包装类型,这些工具由Maven预定义并在此处解释 - > http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Built-in_Lifecycle_Bindings.

但是这个例子展示了如何创建完全自定义的生命周期绑定 - > http://www.sonatype.com/people/2009/08/create-a-customized-build-process-in-maven/.如您所见,您可以将插件目标的任意组合绑定到特定的生命周期阶段.

最后,但并非最不重要的是,您可以通过build/pluginspom文件的元素手动添加插件执行.如果这样做,特定阶段的插件将按FIFO顺序执行.

此外,它可以帮助您查看Effective POM所有这些默认值拼写.许多IDE为Maven项目提供了此选项,但您也可以从命令行查看有效的pom:

mvn help:effective-pom
Run Code Online (Sandbox Code Playgroud)