工程的聚合與依賴 1 聚合 當項目是多模塊時,如何一次構建多個模塊,而不是要分別到多個模塊下分別執行Maven命令。 1.1 父子結構 <!--父模塊netsales-poss中的packaging必須為pom--> <packaging>pom</packaging> <!--父模塊netsale ...
工程的聚合與依賴
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>
申明的依賴,子模塊預設會全部繼承。