系列文章(更新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 -
一個立志成大腿而每天努力奮鬥的年輕人
伴學習伴成長,成長之路你並不孤單!