您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。