maven的聚合模塊和pom繼承使用-創(chuàng)新互聯(lián)

1.什么是maven的聚合模塊?

聚合模塊為項(xiàng)目目錄的最頂層,其他模塊作為聚合模塊子目錄而存在。目的是為一次構(gòu)建多個(gè)項(xiàng)目模塊。

創(chuàng)新互聯(lián)建站自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元池州做網(wǎng)站,已為上家服務(wù),為池州各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

1.1 項(xiàng)目結(jié)構(gòu)

我自己化了一個(gè)關(guān)于項(xiàng)目的關(guān)系:

maven的聚合模塊和pom繼承使用

1.2 pom標(biāo)簽配置-module下載

   maven-aggregate作為maven pom項(xiàng)目,需要定義pom.xml的 packaging 為 pom類型

   我們還是參照 maven的依賴特性,沖突解決(五) 創(chuàng)建 maven-01 maven-02 maven-03工程,通過(guò)maven-aggregate pom工程 對(duì)這三個(gè)maven項(xiàng)目做一個(gè)聚合,配置如下:

  maven的聚合模塊和pom繼承使用

Xml代碼 下載

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  3.   <modelVersion>4.0.0</modelVersion>

  4.   <groupId>com.sohu.train</groupId>

  5.   <artifactId>maven-aggregate</artifactId>

  6.   <version>0.0.1-SNAPSHOT</version>

  7.   <packaging>pom</packaging>

  8.   <!-- 子模塊 指定項(xiàng)目pom的位置   ..代表上一級(jí)目錄-->

  9.   <modules>

  10.     <module>../maven-01</module>

  11.     <module>../maven-02</module>

  12.     <module>..maven-03</module>

  13.   </modules>

  14. </project>

  對(duì) maven-aggregate執(zhí)行下mvn clean compile

Xml代碼 下載

  1. [INFO] Scanning for projects...

  2. [WARNING]

  3. [WARNING] Some problems were encountered while building the effective model for com.sohu.train:maven-02:jar:1.0-SNAPSHORT

  4. [WARNING] 'dependencies.dependency.exclusions.exclusion.groupId' for junit:junit:jar is missing. @ line 38, column 16

  5. [WARNING] 'dependencies.dependency.exclusions.exclusion.artifactId' for junit:junit:jar is missing. @ line 38, column 16

  6. [WARNING]

  7. [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.

  8. [WARNING]

  9. [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.

  10. [WARNING]

  11. [INFO] ------------------------------------------------------------------------

  12. [INFO] Reactor Build Order:   //構(gòu)建 maven 的反應(yīng)堆,執(zhí)行清理 編譯的順序

  13. [INFO]

  14. [INFO] maven-02

  15. [INFO] maven-01

  16. [INFO] maven-03

  17. [INFO] maven-aggregate

  18. [INFO]

  19. [INFO] ------------------------------------------------------------------------

  20. [INFO] Building maven-02 1.0-SNAPSHORT

  21. [INFO] ------------------------------------------------------------------------

  22. [INFO]

  23. [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-02 ---

  24. [INFO] Deleting E:\train\test\maven-02\target

  25. [INFO]

  26. [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-02 ---

  27. [INFO] Using 'UTF-8' encoding to copy filtered resources.

  28. [INFO] skip non existing resourceDirectory E:\train\test\maven-02\src\main\resources

  29. [INFO]

  30. [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven-02 ---

  31. [INFO] Changes detected - recompiling the module!

  32. [INFO] Compiling 1 source file to E:\train\test\maven-02\target\classes

  33. [INFO]

  34. [INFO] ------------------------------------------------------------------------

  35. [INFO] Building maven-01 1.0-SNAPSHOT

  36. [INFO] ------------------------------------------------------------------------

  37. [INFO]

  38. [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-01 ---

  39. [INFO] Deleting E:\train\test\maven-01\target

  40. [INFO]

  41. [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-01 ---

  42. [INFO] Using 'UTF-8' encoding to copy filtered resources.

  43. [INFO] Copying 1 resource

  44. [INFO]

  45. [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven-01 ---

  46. [INFO] Changes detected - recompiling the module!

  47. [INFO] Compiling 1 source file to E:\train\test\maven-01\target\classes

  48. [INFO]

  49. [INFO] ------------------------------------------------------------------------

  50. [INFO] Building maven-03 0.0.1-SNAPSHOT

  51. [INFO] ------------------------------------------------------------------------

  52. [INFO]

  53. [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-03 ---

  54. [INFO] Deleting E:\train\test\maven-03\target

  55. [INFO]

  56. [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-03 ---

  57. [INFO] Using 'UTF-8' encoding to copy filtered resources.

  58. [INFO] skip non existing resourceDirectory E:\train\test\maven-03\src\main\resources

  59. [INFO]

  60. [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven-03 ---

  61. [INFO] Changes detected - recompiling the module!

  62. [INFO] Compiling 1 source file to E:\train\test\maven-03\target\classes

  63. [INFO]

  64. [INFO] ------------------------------------------------------------------------

  65. [INFO] Building maven-aggregate 0.0.1-SNAPSHOT

  66. [INFO] ------------------------------------------------------------------------

  67. [INFO]

  68. [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-aggregate ---

  69. [INFO] ------------------------------------------------------------------------

  70. [INFO] Reactor Summary:     // 可以看到 對(duì)3個(gè)maven項(xiàng)目 一起執(zhí)行編譯

  71. [INFO]

  72. [INFO] maven-02 ........................................... SUCCESS [  1.874 s]

  73. [INFO] maven-01 ........................................... SUCCESS [  0.108 s]

  74. [INFO] maven-03 ........................................... SUCCESS [  0.158 s]

  75. [INFO] maven-aggregate .................................... SUCCESS [  0.002 s]

  76. [INFO] ------------------------------------------------------------------------

  77. [INFO] BUILD SUCCESS

  78. [INFO] ------------------------------------------------------------------------

  79. [INFO] Total time: 2.263 s

  80. [INFO] Finished at: 2016-01-15T14:35:41+08:00

  81. [INFO] Final Memory: 14M/227M

  82. [INFO] ------------------------------------------------------------------------

 這樣我們就完成 maven對(duì)子模塊的聚合 ,像我們平常用的dubbo jetty tomcat spring hibernate等等 都是按模塊 去開發(fā),一次編譯 各個(gè)模塊都能緊密聯(lián)系在一起了。我們?cè)谄匠i_發(fā)項(xiàng)目也需要適當(dāng)?shù)娜シ帜K開發(fā),

這是dubbo的子模塊,分了很多子模塊:下載

 maven的聚合模塊和pom繼承使用

2.什么是pom繼承?

pom繼承是為了抽出重復(fù)配置,通常配置在父模塊中,為子模塊提供使用,這樣可以做到“一處聲明,處處使用”。

2.1 繼承結(jié)構(gòu)

下載

2.2 pom標(biāo)簽配置-parent,*Management

 1.常用的pom被繼承的元素

Xml代碼 下載

  1. groupId :項(xiàng)目組 ID ,項(xiàng)目坐標(biāo)的核心元素;

  2. version :項(xiàng)目版本,項(xiàng)目坐標(biāo)的核心元素;

  3. description :項(xiàng)目的描述信息;

  4. properties :自定義的 Maven 屬性;

  5. dependencies :項(xiàng)目的依賴配置;

  6. dependencyManagement :醒目的依賴管理配置;

  7. repositories :項(xiàng)目的倉(cāng)庫(kù)配置;

  8. build :包括項(xiàng)目的源碼目錄配置、輸出目錄配置、插件配置、插件管理配置等;

 1.配置maven-aggregate pom文件:

Xml代碼 下載

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  3.   <modelVersion>4.0.0</modelVersion>

  4.   <groupId>com.sohu.train</groupId>

  5.   <artifactId>maven-aggregate</artifactId>

  6.   <version>0.0.1-SNAPSHOT</version>

  7.   <packaging>pom</packaging>

  8.   <!-- 子模塊 -->

  9.   <modules>

  10.     <module>../maven-01</module>

  11.     <module>../maven-02</module>

  12.     <module>../maven-03</module>

  13.   </modules>

  14.   <!-- 統(tǒng)一配置構(gòu)件的版本號(hào) -->

  15.   <properties>

  16.     <junit.version>3.8.1</junit.version>

  17.   </properties>

  18.   <!-- 依賴管理 -->

  19.   <dependencyManagement>

  20.     <dependencies>

  21.         <dependency>

  22.             <groupId>junit</groupId>

  23.             <artifactId>junit</artifactId>

  24.             <version>${junit.version}</version>

  25.             <scope>test</scope>

  26.         </dependency>

  27.     </dependencies>

  28.   </dependencyManagement>

  29. </project>

 maven-01,maven-02,maven-03 需要配置parent ,dependencies,同時(shí)對(duì)junit做一個(gè)依賴,3個(gè)工程的pom配置如下:

Xml代碼 下載

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  3.     <modelVersion>4.0.0</modelVersion>

  4.     <!-- 指定父pom的坐標(biāo)及pom位置 -->

  5.     <parent>

  6.         <groupId>com.sohu.train</groupId>

  7.         <artifactId>maven-aggregate</artifactId>

  8.         <version>0.0.1-SNAPSHOT</version>

  9.         <relativePath>../maven-aggregate/pom.xml</relativePath>

  10.     </parent>

  11.     <artifactId>maven-03</artifactId>

  12.     <packaging>jar</packaging>

  13.         <!-- 添加對(duì)junit依賴,這樣公用配置只需要在maven-aggregate中去配置 -->

  14.     <dependencies>

  15.         <dependency>

  16.             <groupId>junit</groupId>

  17.             <artifactId>junit</artifactId>

  18.         </dependency>

  19.     </dependencies>

  20. </project>

 這樣就完成pom的繼承,講公用的jar一次配置,就可以實(shí)現(xiàn)多處引用了。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:maven的聚合模塊和pom繼承使用-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://muchs.cn/article8/hegip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站網(wǎng)站設(shè)計(jì)公司、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管