gpt4 book ai didi

apache - Maven:生命周期阶段和目标之间的关系

转载 作者:行者123 更新时间:2023-12-03 14:59:14 25 4
gpt4 key购买 nike

我很难在这里看到一些 Maven 概念上的“森林中的森林”。我知道 Maven 预配置了一系列以 validate 开头的所谓“构建生命周期阶段”。 , 和 test并以 deploy 结尾.

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

我的问题(因为我习惯于根据目标和任务来考虑构建)是:这些生命周期阶段(packageverify 等)如何与目标相关联?是否需要配置在哪个阶段运行哪些目标,或者这是由 Maven 以某种方式自动完成的?

或者,这些目标是否在它们所属的阶段预先定义?

我只是没有看到一个人如何订购目标来创建适用于他们或他们的组织的自定义构建。

提前感谢您的澄清!

最佳答案

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

例如。寻找documentation of maven-jar-plugin:jar goal .它说:

Binds by default to the lifecycle phase: package.



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

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

最后但同样重要的是,您可以通过 build/plugins 手动添加插件执行。你的 pom 文件的元素。如果您这样做,特定阶段的插件将以 FIFO 顺序执行。

此外,查看 Effective POM 可能对您有所帮助。详细说明了所有这些默认值。许多 IDE 为 Maven 项目提供此选项,但您也可以从命令行查看有效的 pom:
mvn help:effective-pom

关于apache - Maven:生命周期阶段和目标之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com