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