31

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

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

4

1 回答 1

50

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

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

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

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

于 2012-05-12T22:55:22.507 回答