【问题标题】:Where is the JAR packaging Maven lifecycle defined?JAR 打包 Maven 生命周期在哪里定义?
【发布时间】:2016-08-26 07:23:45
【问题描述】:

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

【问题讨论】:

  • 为什么要创建自定义包装?
  • 我的团队需要自动化 PL/SQL 项目的构建过程(编译、运行测试、打包和部署)。 Maven 也足够灵活,可以用于非 Java 项目。因此,我们开始创建一些自定义插件和新的打包类型。

标签: java maven maven-plugin maven-lifecycle


【解决方案1】:

您的问题有一个小小的误解。 "jar" 包装没有特殊的生命周期。它基于默认的生命周期。

来自the lifecycle reference

Maven 在 META-INF/plexus/components.xml 中定义了 3 个生命周期:

  • default生命周期
  • clean生命周期
  • site生命周期

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

default 生命周期的定义没有任何关联的插件。此生命周期的插件绑定为 defined separately for every packaging

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

拥有这两个独立文件的目的是区分生命周期(定义它包含哪些阶段)和打包(定义插件的哪些目标应绑定到该生命周期的哪些阶段)。

【讨论】:

  • 谢谢。我的误解是基于这本在线书:books.sonatype.com/mvnref-book/reference/… 它使用了“特定于包的生命周期”的表达,但我同意你的观点。
  • @FernandoCosta 这本 Maven 书是一个很好的资源。是的,标题“特定于包的生命周期”可能有点误导(因为它只是默认的),但后面的文字是正确的。改变的是生命周期的配置,而不是生命周期本身。
  • 为什么有人能够删除我 8-10 小时前的评论?是:Re "which plugin should be bound to which phase" – 不就是 goals (of plugins) 绑定到阶段吗?
猜你喜欢
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 2014-12-05
  • 1970-01-01
相关资源
最近更新 更多