【问题标题】:Difference between Maven source plugin jar and jar-no-fork goal?Maven 源插件 jar 和 jar-no-fork 目标之间的区别?
【发布时间】:2012-05-12 21:31:16
【问题描述】:

能否详细解释一下 jar 和 jar-no-fork 目标之间的区别?

我在官方网站上看到的,但我对此没有一个明确的想法。

【问题讨论】:

  • 一个分叉一个线程,一个不分叉。
  • fork 线程是什么意思?
  • jar 目标在 Jenkins 中导致警告,请参阅issues.jenkins.io/browse/…

标签: maven jar maven-plugin


【解决方案1】:

我的解释:jar 目标是要从命令行运行 (mvn source:jar),jar-no-fork 是要绑定到生命周期。

如果您查看docsjar 目标,则关键字是“在执行自身之前调用生命周期阶段生成源的执行”。如果您将 POM 配置为运行 source:jar 目标作为生命周期的一部分,Maven 将重新运行绑定到 generate-sources 及其前身的所有目标。如果您有许多插件目标绑定到验证或初始化阶段,所有这些都将运行两次,从而延长构建时间。

相比之下,jar-no-fork 是您附加到构建生命周期的内容,因为它预计会绑定到 generate-sources 之后的某个阶段,并且不会再次运行绑定的目标。

我已通过使用 -X 运行 Maven 3 并查看运行的插件执行来验证此行为。

【讨论】:

  • 默认阶段和最低版本都在jar-no-fork文档的属性部分中描述。
  • 这也是我的理解,但是奇怪的是Maven 3.0.4的超级POM使用的是jar目标,而不是release-profile中的jar-no-fork目标。知道为什么吗?
  • 不知道。也许 jar-no-fork 目标是在 Maven 3.0.4 发布后添加到插件中的。您必须查看两者的发行说明。
猜你喜欢
  • 2022-10-23
  • 2016-11-27
  • 2019-07-04
  • 2011-05-23
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
相关资源
最近更新 更多