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