maven插件重新认识
2021-04-11 16:15 Spiderman25 阅读(97) 评论(1) 收藏 举报1、pluginManagement类似于dependencyManagement,只负责声明,不负责创建。(使用时加上groupId和artifactId)。
2、若定义了pluginManagement,本pom和子孙pom都会收到声明。
3、若定义了plugins,本pom和子孙pom都会被定义。
4、若定义了相同的pluginManagement和plugins,则本pom和子孙pom都会只认plugins。
5、若子pom重新定义plugins,则在子pom会被重写。
6、打包时,先执行完父pom,再执行子pom;执行同级的pom时,先执行某一同级pom及其子孙pom再执行下一个;每个pom的生命周期都是独立的,也就是执行完clean pagckage install等生命周期再执行下一个;若pom间有依赖关系,先执行被依赖的pom,再执行依赖方;所以我们打包时,可以直接打父pom,就会自动根据依赖关系为顺序把所有的包都打到各个项目上,否则要自己手动打,若顺序不对会报缺少jar包的错误。
7、plugins要引入并在对应的时期上使用目标才算是引入了,否则只使了groupId和artifactId并不能引入,除非父pom已经用pluginManagement定义了对应的属性。
8、用pluginManagement声明或plugins定义后,都可以在本项目及子项目上直接运行对应的插件,但pluginManagement不能在生命周期有响应,而plugins可以。
9、项目若重新用pluginManagement(可以来自父pom)声明,所引用的maven版本也会被改变(发现 被引用的maven用pluginManagement声明然后使用 引入可以,写死版本号那种没测)