2012-05-12 60 views

回答

27

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

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

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

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

+0

嗨,真的非常感谢您的回答,我现在明白了:) – Tim

+0

但谁能告诉我我该如何接受这个答案? – Tim

+0

我这样做,谢谢你的回答。 – Tim

相关问题