工程的聚合與依賴
1 聚合
當專案是多模塊時,如何一次構建多個模塊,而不是要分別到多個模塊下分別執行Maven命令,
1.1 父子結構

<!--父模塊netsales-poss中的packaging必須為pom-->
<packaging>pom</packaging>
<!--父模塊netsales-poss中的pom.xml中引入子模塊-->
<modules>
<module>poss-basic</module>
<module>poss-core</module>
<module>poss-openapi</module>
</modules>
1.2 平行結構

<!--父模塊netsales-parent中的packaging必須為pom-->
<packaging>pom</packaging>
<!--父模塊netsales-parent中的pom.xml中引入子模塊-->
<modules>
<module>../netsales-framework</module>
<module>../netsales-jobs</module>
</modules>
<modelu>中的路徑可以理解為模塊pom.xml的相對路徑
在父模塊中執行Maven的構建命令時,maven給根據各個模塊之間的依賴關系,依次構建各個模塊
2 繼承
多個子專案都需要某些依賴,就可以把子專案共同的依賴抽取到父專案中,子專案通過繼承得到這些依賴,便于管理,
<!--poss-openapi模塊中使用parent標簽指定父模塊-->
<parent>
<groupId>com.aster.netsales.poss</groupId>
<artifactId>netsales-poss</artifactId>
<version>1.1.0</version>
</parent>
2.1 dependencyManagement依賴繼承
父模塊使用 dependencyManagement 標簽來管理依賴,子專案默認不繼承,可以配置繼承,
<dependencyManagement>
<dependencies>
<!-- 子 pom 可以配置繼承 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<!-- 子 pom 不可以繼承 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.6</version>
<optional>true</optional>
</dependency>
</dependencies>
</dependencyManagement>
子模塊配置父模塊在dependencyManagement 中的依賴時,不需要版本, 會從父專案繼承, 如果指定版本就是代表不是來自父 pom 而是子 pom 自己的
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 父專案的 swagger 是不能繼承的 -->
</dependencies>
2.2 dependencies依賴繼承
父模塊中使用<dependencies>申明的依賴,子模塊默認會全部繼承,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/157162.html
標籤:Java
下一篇:Java筆記:反射,注解
