您能否详细解释一下 jar 和 jar-no-fork 目标之间的区别?
我从官方网站上看到它,但我对此没有一个明确的想法。
请您参考如下方法:
我的解释:jar
目标是从命令行(mvn source:jar
)运行,jar-no-fork
意味着绑定(bind)到生命周期。
如果您查看 docs对于jar
目标关键短语是“在执行自身之前调用生命周期阶段生成源的执行”。如果您将 POM 配置为运行 source:jar
目标作为生命周期的一部分,Maven 将 重新运行所有绑定(bind)到 generate-sources
的目标及其前辈。如果您有许多插件目标绑定(bind)到验证或初始化阶段,所有这些都将运行两次,从而延长构建时间。
相比之下,jar-no-fork
是您附加到构建生命周期的内容,因为它预计会绑定(bind)到 generate-sources
之后的某个阶段并且不会再次运行绑定(bind)目标。
我已通过使用 -X
运行 Maven 3 来验证此行为。并查看运行的插件执行。