Maven 聚合
在開發(fā)2個(gè)以上模塊的時(shí)候户矢,每個(gè)模塊都是一個(gè) Maven Project玲献。比如搜索平臺(tái),學(xué)習(xí)平臺(tái)梯浪,考試平臺(tái)捌年。
開發(fā)的時(shí)候可以自己管自己獨(dú)立編譯,測(cè)試挂洛,運(yùn)行礼预。但如果想要將他們整合起來,我們就需要一個(gè)聚合工程抹锄。
比如:
maven-parent (Maven Project)
|- maven-son1 (Maven Module)
|- maven-son2 (Maven Module)
|- …
(1) 父模塊的創(chuàng)建.
父模塊一般承擔(dān)聚合模塊和統(tǒng)一管理依賴的作用,沒有實(shí)際代碼和資源文件.
父模塊就是創(chuàng)建一個(gè)普通的 Maven Project , 此處省略.
但是需要注意的是: 父模塊的打包方式必須是 pom.
(2) 子模塊的創(chuàng)建
① 子模塊需要?jiǎng)?chuàng)建為 Maven Module 項(xiàng)目.
② 選擇該子模塊所屬的父模塊
③ 打包方式 : web 項(xiàng)目需要打 war 包荠藤,其他的比如 dao 層, service 層, entity 層都可以打 jar 包.
(3) 項(xiàng)目結(jié)構(gòu)
完成后的項(xiàng)目結(jié)構(gòu)如下:
實(shí)際的目錄結(jié)構(gòu):子模塊其實(shí)是包含在父模塊文件夾里面的.
(4) 父模塊的 pom 文件.
指明它的子模塊都有哪些.
<modules>
<module>PYG-pojo</module>
<module>PYG-dao</module>
<module>PYG-Commons</module>
...
</modules>
(5) 子模塊的 pom 文件
指明它的父模塊是誰(shuí).
<modelVersion>4.0.0</modelVersion>
<!-- 指定它的父模塊是誰(shuí) -->
<parent>
<groupId>it.com.pyg</groupId>
<artifactId>PYG-Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<!-- 當(dāng)前子模塊的名字 -->
<artifactId>PYG-dao</artifactId>
(6) 聚合工程的依賴傳遞
一般都是在父模塊的 pom 中定義項(xiàng)目用到的依賴以及版本,
然后在子模塊的 pom 中, 需要什么依賴就直接引入, 不引入版本號(hào), 依賴會(huì)自動(dòng)從父模塊中傳遞到子模塊中.
① 父模塊中定義依賴
<!-- 統(tǒng)一定義版本號(hào) -->
<properties>
<spring.version>4.3.7.RELEASE</spring.version>
</properties>
<!-- 父模塊統(tǒng)一管理依賴 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
② 子模塊中使用依賴
子模塊中使用的話, 不需要定義版本號(hào).
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
</dependencies>
(7) 聚合工程的安裝.
聚合工程不需要每個(gè)模塊分別安裝, 只要對(duì)父工程安裝即可.
① 在 打包方式為 pom 的模塊中, 添加插件.
<!-- 多模塊運(yùn)行插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
② 在父模塊上, 右鍵 -> Run As -> Maven install.
③ 執(zhí)行結(jié)果 : 父工程和子模塊都Build成功了伙单。
(7) 多模塊的 WEB 項(xiàng)目運(yùn)行.
在 打包方式為 pom 的模塊上, 右鍵