構建Maven多模組
阿新 • • 發佈:2018-11-22
構建Maven多模組
背景介紹
在學習《Spring-Cloud微服務架構》中,曾看到Maven多模組,一時來了興趣便進行研究。我比較喜歡用IDEA,所以這裡用IDEA來介紹了。
學習之旅
按照圖中步驟一步步來
然後一直next到底,然後刪除沒有必要的src檔案。然後右鍵新建如圖的一個子模組,名為child模組
最後Blog pom.xml程式碼為
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>vip.wulang</groupId>
<artifactId>Blog</artifactId>
<version>1.0-SNAPSHOT</ version>
<modules>
<module>child</module>
</modules>
<packaging>pom</packaging>
<name>Blog Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
</project>
注意:Blog的pom.xml多了幾行
<modules>
<module>child</module>
</modules>
最後Child pom.xml程式碼為
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>Blog</artifactId>
<groupId>vip.wulang</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child</artifactId>
<packaging>war</packaging>
<name>child Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
</project>
注意:child的pom.xml多了幾行
<parent>
<artifactId>Blog</artifactId>
<groupId>vip.wulang</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
- 父模組的<modules>中記錄了子模組的artifactId
- 子模組中<parent>也記錄著父模組的配置資訊
- 子模組中<parent>中的<relativePath>中記錄的是父專案相對於子專案的路徑.這樣的邏輯是,在構建子專案的時候首先根據相對路徑找到父專案
- 子模組可從父模組繼承的元素
- groupId:專案組ID,專案座標的核心元素
- version:專案版本,專案座標的核心元素
- description:專案的描述資訊
- organization:專案的組織資訊
- inceptionYear:專案的創始年份
- url:專案的URL地址
- developers:專案的開發者資訊
- contributors:專案的貢獻者資訊
- distributionManagement:專案的部署資訊
- issueManagement:專案的缺陷跟蹤系統資訊
- ciManagement:專案的持續整合系統資訊
- scm:專案的版本控制系統資訊
- mailingLists:專案的郵件列表資訊
- properties:專案的依賴配置
- dependencies:專案的依賴配置
- dependencyManagement:專案的依賴管理配置
- repositories:專案的倉庫配置
- build:包括專案的原始碼目錄配置、輸出目錄配置、外掛配置、外掛管理配置等
- reporting:包括專案的報告輸出目錄配置、報告外掛配置等