Maven源插件jar和jar-no-fork目标之间的区别?

时间:2012-05-12 21:31:16

标签: maven jar maven-plugin

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

我是从官方网站上看到的,但我无法清楚地了解这一点。

1 个答案:

答案 0 :(得分:36)

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

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

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

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