你能否详细解释一下jar和jar-no-fork目标之间的区别?
我是从官方网站上看到的,但我无法清楚地了解这一点。
答案 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并查看运行的插件执行来验证此行为。