Maven目标和阶段之间有什么区别/关系?它们如何相互关联?
目标是分阶段执行的,有助于确定目标的执行顺序。对此的最佳理解是查看默认的Maven生命周期绑定,该绑定显示默认情况下哪些目标在哪个阶段运行。编译阶段目标将始终在测试阶段目标之前执行,而测试阶段目标将始终在软件包阶段目标之前执行,依此类推。
当您执行Maven时可以指定目标或阶段,这加剧了部分混乱。如果您指定一个阶段,那么maven将按顺序运行所有阶段,直到您指定的阶段为止(例如,如果您指定软件包,它将首先运行编译阶段,然后是测试阶段,最后是软件包阶段),并且对于每个阶段,运行该阶段附加的所有目标。
当您在Maven构建文件中创建插件执行并且仅指定目标时,它将把该目标绑定到给定的默认阶段。例如,jaxb:xjc目标默认情况下绑定到generate-resources阶段。但是,当您指定执行时,您也可以显式指定该目标的阶段。
如果在执行Maven时指定目标,则它将运行该目标,并且仅运行该目标。换句话说,如果您指定jar:jar目标,它将仅运行jar:jar目标以将您的代码打包到jar中。如果您以前没有运行过编译目标或以其他方式准备了已编译的代码,则很可能会失败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句