1. 程式人生 > >構建Maven多模組

構建Maven多模組

構建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>
  1. 父模組的<modules>中記錄了子模組的artifactId
  2. 子模組中<parent>也記錄著父模組的配置資訊
  3. 子模組中<parent>中的<relativePath>中記錄的是父專案相對於子專案的路徑.這樣的邏輯是,在構建子專案的時候首先根據相對路徑找到父專案
  4. 子模組可從父模組繼承的元素
    • groupId:專案組ID,專案座標的核心元素
    • version:專案版本,專案座標的核心元素
    • description:專案的描述資訊
    • organization:專案的組織資訊
    • inceptionYear:專案的創始年份
    • url:專案的URL地址
    • developers:專案的開發者資訊
    • contributors:專案的貢獻者資訊
    • distributionManagement:專案的部署資訊
    • issueManagement:專案的缺陷跟蹤系統資訊
    • ciManagement:專案的持續整合系統資訊
    • scm:專案的版本控制系統資訊
    • mailingLists:專案的郵件列表資訊
    • properties:專案的依賴配置
    • dependencies:專案的依賴配置
    • dependencyManagement:專案的依賴管理配置
    • repositories:專案的倉庫配置
    • build:包括專案的原始碼目錄配置、輸出目錄配置、外掛配置、外掛管理配置等
    • reporting:包括專案的報告輸出目錄配置、報告外掛配置等