您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关Maven中plugins与pluginManagement的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
plugins 下的 plugin 是真实使用的,而 pluginManagement 下的 plugins 下的 plugin 则仅仅是一种声明,父项目是不能使用的,子项目中可以对 pluginManagement 下的 plugin 进行信息的选择、继承、覆盖等。
假如存在两个项目,项目A为项目B的父项目,其关系通过pom文件的关系确定。项目A的父pom文件片段如下:
<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.1.0</version> <configuration> <delimiters> <delimiter>@</delimiter> </delimiters> <useDefaultDelimiters>false</useDefaultDelimiters> </configuration> </plugin> </plugins> </pluginManagement>
如果项目B也想使用该plugin配置,则在项目B的子pom文件中只需要如下配置:
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> </plugin> </plugins>
可以看到,子项目的pom文件中,省去了版本、配置细节等信息,只需要指定groupId和artifactId,其他信息均从父项目的pom文件继承。如果子pom文件需要定制自己的插件,可以另行设置,并会覆盖从父pom文件继承到的内容。
特别提示:dependencies 和 dependencyManagement 均是 project 下的直接子元素,但是 plugins 和 pluginManagement 却是 project 下 build 的直接子元素。
在配置SonarQube的时候遇到了一些问题,例如surefire跟failsafe应该写在哪里
pluginManagement的作用类似于denpendencyManagement,只是denpendencyManagement是用于管理项目jar包依赖,pluginManagement是用于管理plugin。
与pom build里的plugins区别是,这里的plugin是列出来,然后让子pom来决定是否引用。
如果要让子模块继承父模块的plugin的使用,还是要在父模块里头声明这些plugin
另外说一下,关于packaging,pom意味着这个包本身不会被打成jar.
关于“Maven中plugins与pluginManagement的区别有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。