日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

maven 之dependencyManagement 和 pluginManagement

發(fā)布時間:2024/9/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven 之dependencyManagement 和 pluginManagement 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一個大中型Java項目中,一般由若干個module組成,各個module各司其職,擔(dān)任整個工程中不同角色。大多數(shù)情況下,大多數(shù)module都會用到相同的jar包,或者插件。如果每個module中都引入自己喜歡的jar、插件,不僅冗余,而且太多冗余jar包,使得資源浪費(fèi)。為了統(tǒng)一管理各個module中的library jar plugin,讓所有子module都繼承一個父pom.xml。有同學(xué)說,既然有了繼承,我就直接在pom.xml ? 的 dependencies中聲明module中需要的library,不就好了!想想如果有一些module中不需要這樣的library,豈不是又要引進(jìn)冗余jar。而dependencyManagement正好解決了這一問題,他在父pom.xml中,不會直接到repository中解析你定義的依賴,而是在子module中,如果你用到了dependencyManagement中聲明的dependency包,這時你只需要聲明包的groupid, artifactid,即可,因?yàn)閐ependencyManagement已經(jīng)替你定義好了版本version,從而既實(shí)現(xiàn)了版本統(tǒng)一管理,又可以各取所需!

dependencyManagement用于在父項目中統(tǒng)一對子項目依賴管理,在pom的project節(jié)點(diǎn)中定義如下(舉例):

[html]?view plaincopy
  • <dependencyManagement>??
  • ?<dependencies>??
  • ??
  • ?<dependency>??
  • ????????????<groupId>org.slf4j</groupId>??
  • ????????????<artifactId>slf4j-api</artifactId>??
  • ????????????<version>1.7.12</version>??
  • ????????</dependency>??
  • ??
  • ????????<dependency>??
  • ????????????<groupId>ch.qos.logback</groupId>??
  • ????????????<artifactId>logback-core</artifactId>??
  • ????????????<version>1.1.3</version>??
  • ????????</dependency>??
  • [html]?view plaincopy
  • <span?style="white-space:pre">????</span><dependency>??
  • ??????<groupId>junit</groupId>??
  • ??????<artifactId>junit</artifactId>??
  • ??????<version>4.11</version>??
  • ??????<scope>test</scope>??
  • ????</dependency>??
  • [html]?view plaincopy
  • ????????<dependency>??
  • ????????????<groupId>ch.qos.logback</groupId>??
  • ????????????<artifactId>logback-classic</artifactId>??
  • ????????????<version>1.1.3</version>??
  • ????????</dependency>??
  • ??
  • ??</dependencies>??
  • </dependencyManagement>??

  • maven之 pluginManagement:

    其實(shí),它和dependencyManagement有相似功能,即:由父pom.xml定義該元素,可統(tǒng)一子項目中的插件。引用stackoverflow的問題帖子:

    http://stackoverflow.com/questions/10483180/maven-what-is-pluginmanagement

    用自己的理解翻譯,ps:讀者可自行翻譯

    在你的build中,pluginManagement僅僅是一種在所有module中分享相同插件配置的一種方式。

    From Maven document:

    pluginManagement: 它是一個被視作插件的一個元素。在很多module中,Plugin Management 以相同方式包含插件元素,而不是為某個特定項目構(gòu)建(build)配置插件信息

    它是用來配置從它繼承的項目構(gòu)建(build)。可是,這僅僅是配置在子module的plugins中確實(shí)引用到的插件。每個子module都有權(quán)利去覆蓋PluginManagement 的定義。

    總結(jié)

    以上是生活随笔為你收集整理的maven 之dependencyManagement 和 pluginManagement的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。