代码改变世界

maven插件重新认识

  Spiderman25  阅读(82)  评论(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声明然后使用 引入可以,写死版本号那种没测)

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示