構建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:包括項目的報告輸出目錄配置、報告插件配置等