首頁 > 軟體

一文帶你搞懂Maven的繼承與聚合

2022-07-07 18:01:42

一、繼承

我們已經完成了使用聚合工程去管理專案,聚合工程進行某一個構建操作,其他被其管理的專案也會 執行相同的構建操作。那麼接下來,我們再來分析下,多模組開發存在的另外一個問題,重複設定的問題,我們先來看張圖:

■ spring-webmvc、spring-jdbc在三個專案模組中都有出現,這樣就出現了重複的內容

■ spring-test只在ssm_crm和ssm_goods中出現,而在ssm_order中沒有,這裡是部分重複的內容

■ 我們使用的spring版本目前是5.2.10.RELEASE ,假如後期要想升級spring版本,所有跟Spring相關jar包都得被修改,涉及到的專案越多,維護成本越高

繼承概念

繼承描述的是兩個工程間的關係,與java中的繼承相似,子工程可以繼承父工程中的設定資訊,常用於依賴關係的繼承

作用

  • 簡化設定
  • 減少版本衝突

二、繼承關係實施步驟

1、建立Maven模組,設定打包型別為pom

<packageing>pom<packageing>

注意事項:建議父工程打包方式設定為pom

2、在父工程的pom檔案中設定依賴關係(子工程將沿用父工程中的依賴關係)

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        ...
</dependencies>

3、在設定子工程中可選的依賴關係

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.16</version>
            </dependency>
            ...
        </dependencies>
</dependencyManagement>

4、在子工程中設定當前工程所繼承的父工程

<!--設定該工程的父工程-->
  <parent>
    <groupId>com.itheima</groupId>
    <artifactId>maven_01_parent</artifactId>
    <version>1.0-RELEASE</version>
    <!--填寫父工程的pom檔案-->
    <relativePath>../maven_01_parent/pom.xml</relativePath>
</parent>

5、在子工程中設定使用父工程中可選依賴的座標

<dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
</dependencies>

注意事項:

子工程中使用父工程中的可選依賴時,僅需要提供群組id和專案id,無需提供版本,版本由父工程統一提供,避免版本衝突,子工程中還可以定義父工程中沒有定義的依賴關係。

三、聚合與繼承的區別

作用

聚合用於快速構建專案

繼承用於快速設定

相同點

聚合與繼承的pom.xml檔案打包方式為pom,可以將兩種關係製作到同一個pom檔案中

聚合與繼承均屬於設計型模組,並無實際的模組內容

不同點

聚合是在當前模組中設定關係,聚合可以感知到參與聚合的模組有哪些

繼承是在子模組中設定關係,父模組無法感知哪些子模組繼承了自己

以上就是一文帶你搞懂Maven的繼承與聚合的詳細內容,更多關於Maven繼承 聚合的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com