JAR打包Maven生命周期定义在哪里?

Where is the JAR packaging Maven lifecycle defined?

我正在根据 JAR 包装的生命周期创建自定义 Maven 包装。我想知道此生命周期的定义位置(即 components.xml 源代码位置)。

你的问题有点误会。 "jar" 包装没有特殊的生命周期。它基于默认生命周期。

来自 the lifecycle reference:

Maven defines 3 lifecycles in META-INF/plexus/components.xml:

  • default Lifecycle
  • clean Lifecycle
  • site Lifecycle

您可以在源代码 here for Maven 3.3.9 中找到此 components.xml 文件。 default 生命周期没有定义任何绑定,因为它们依赖于包装:

default lifecycle is defined without any associated plugin. Plugin bindings for this lifecycle are defined separately for every packaging.

每个标准包装(如 "jar")都定义了绑定到此默认生命周期特定阶段的插件。您可以在文件 default-bindings.xml.

中找到这些绑定

拥有这两个单独文件的目的是区分生命周期和包装,前者定义了它包含的阶段,后者定义了插件的哪些目标应绑定到该生命周期的哪些阶段。