「 從0到1學習微服務SpringCloud 」09 補充篇-maven父子模塊項目

系列文章(更新ing):

「 從0到1學習微服務SpringCloud 」06 統一配置中心Spring Cloud Config
「 從0到1學習微服務SpringCloud 」07 RabbitMq的基本使用
「 從0到1學習微服務SpringCloud 」08 構建消息驅動微服務的框架 Spring Cloud Stream

作爲微服務的項目,如果將每個項目都拆成一個完整的項目,很難開發,那得打開多少個idea。應該將它們歸到一個項目裏,使用maven父子模塊項目的形式,如下圖

之前我們項目的拆成單個是錯誤,不過問題不大,可以將它們再合起來。

maven父子模塊項目

1.新建一個maven項目,作爲父項目,把多餘的東西刪掉,只留下.idea和pom.xml

2.將現有的項目作爲子模塊加到項目裏

3.剛加進來的項目會與父項目處於同級,將子模塊拖到父項目裏

4.構建父子模塊
主要是通過modules和parent標籤實現的
1.在父項目的pom中添加modules標籤,將子模塊加進來

 <modules>
        <module>eureka-server</module>
 </modules>

2.在子模塊的pom中添加parent標籤,並加入父項目的座標

<parent>
        <!-- 以下這些東西被稱爲 座標 -->
        <groupId>com.zhangwk</groupId>
        <artifactId>springcloud-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
</parent>

3.一些共用的東西可以放在父項目的pom文件中,因爲子項目的pom會繼承父項目的pom

(1)將子項目中的properties標籤移到父項目中,從而做到jar包的統一版本管理

<properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>

(2)添加以下標籤,用於管理springcloud相關依賴的版本管理

<!-- 子模塊只繼承版本,需要聲明依賴 -->    
<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

<!-- 子模塊可以完全繼承 -->    
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
</dependencies>       

這裏需要注意的是,如果使用了dependencyManagement標籤,裏面的依賴只能用於聲明jar的版本,在子模塊中需要再聲明一次該依賴,無需聲明版本。

若只存在dependencies標籤,子模塊可以繼承裏面的依賴,無需再次聲明。

4.第一個子模塊就加進來了,重複以上1,2,3步,將我們之前的項目都加進來吧

已將代碼上傳到github

https://github.com/zhangwenkang0/springcloud-learning-from-0-to-1

如果覺得不錯,分享給你的朋友!

THANDKS

  • End -

一個立志成大腿而每天努力奮鬥的年輕人

伴學習伴成長,成長之路你並不孤單!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章