溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

構建多模塊的Spring Boot項目步驟全紀錄

發布時間:2020-09-19 00:00:01 來源:腳本之家 閱讀:203 作者:zkm1992 欄目:編程語言

前言

眾所周知,在多個項目中可能會相同的模塊,如果每個項目都去創建一遍的話,這樣開發效率會很低。比如在開發一個APP應用的時候,有供APP使用的接口項目、后臺管理系統,兩個項目共用一套數據庫,分開的話需要配置多次mybatis,如果有些表需要改動的話,則都需要改動,所以使用多模塊管理這些模塊的話,會非常的方便。

通過閱讀本文你將了解到:如何將已有SpringBoot項目改成多模塊 & 如何新構建多模塊SpringBoot項目 以下示例基于我正在使用的order(訂單服務)進行演示,無論你用的是什么項目,原理都是一樣的,這里不要糾結使用的是什么服務。

1、修改最外層pom文件

最外層pom文件是用來管理其他子模塊的父級pom,重點將<packaging>節點修改為pom,修改前<packaging>可能是jar或war

這里修改成pom是因為打包時,父pom是依賴于子pom進行打包的,父pom會通過<modules>節點將所有的子pom模塊引入并且進行管理

構建多模塊的Spring Boot項目步驟全紀錄

<packaging>pom</packaging>

2、創建多模塊

假設你已經設計好子模塊的拆分原則,這里開始基于你自己的設計進行子模塊的創建

例如:我將order項目拆分成三個不通的子模塊,即common、client、server,每個模塊負責的事情是不同的

第一步:右鍵項目名稱,選擇New->Module

構建多模塊的Spring Boot項目步驟全紀錄

第二步:在彈出的New Module窗口選擇Maven

構建多模塊的Spring Boot項目步驟全紀錄

第三步:點擊Next,并輸入子模塊的ArtifactId,如:common、client、server等,然后點擊Next

構建多模塊的Spring Boot項目步驟全紀錄

第四步:檢查并確認子模塊名稱及路徑是否正確,如果正確則點擊Finish

構建多模塊的Spring Boot項目步驟全紀錄

至此,common模塊就創建成功了,你會發現order根目錄下多了一個common子模塊

構建多模塊的Spring Boot項目步驟全紀錄

3、轉移代碼

創建了common模塊后,如果有需要移動至common子模塊下的代碼,則根據原來的代碼目錄結構,在common-src-main-java下創建相同的目錄結構即可

例如:我項將ProductInfoOutput移動到common子模塊下,原來ProductInfoOutput的保路經為com.imooc.order.common,那么我需要在common-src-main-java下創建com.imooc.order.common包,并將ProductInfoOutput拽進去

構建多模塊的Spring Boot項目步驟全紀錄

補充說明:我在創建com.imooc.order.common包時遇到了一個問題,就是右鍵java文件夾然后選New->Package并創建com.imooc.order.common時,創建出來的包路徑時沒有層次結構的,也就是說IDEA單純的為我創建了一個名為com.imooc.order.common的文件夾

經研究發現,是視圖的問題,將左上角的Project改成Project Files,然后按照上面的方式創建即可

構建多模塊的Spring Boot項目步驟全紀錄

在轉移test目錄下的代碼時,同樣需要注意test目錄下的包結構要與轉移前的結構一致,這里以server模塊為例,因為common下的test目錄沒有代碼

構建多模塊的Spring Boot項目步驟全紀錄

當我們創建好多有的子模塊后,觀察最外層的父級pom文件內容,發現父級pom已經將我們創建的子模塊作為modules引入進來了

構建多模塊的Spring Boot項目步驟全紀錄

4、修改子模塊pom文件

當我們創建好多個子模塊后,子模塊間可能會存在依賴關系,例如我的server模塊會依賴common模塊下的ProductInfoOutput類

那么我需要在server模塊的pom文件中將common模塊引入

其他模塊間的依賴引用同理

構建多模塊的Spring Boot項目步驟全紀錄

修改完子pom的依賴關系后,一定要刷新pom文件,不然依賴不會生效

5、配置打包插件

SpringBoot項目一般都會打成jar包部署,所以需要在pom中引入spring-boot-maven-plugin的maven插件

例如:我現在要打包order項目,此時我的SpringBoot運行主類在server模塊下,那么我就需要以server模塊為主要的打包對象

因為打包時,maven插件會去找SpringBoot的啟動類,如果沒有啟動類會打包失敗

構建多模塊的Spring Boot項目步驟全紀錄

那么,此時我就需要在server模塊的pom中增加spring-boot-maven-plugin的相關配置

構建多模塊的Spring Boot項目步驟全紀錄

<build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
  </plugins>
 </build>

注意:在最外層的父級pom中如果同樣存在spring-boot-maven-plugin的配置,記得一定要刪除掉

6、打包并運行服務

在maven窗口一次執行Lifecycle下的clean和install(如果你會maven命令,也可以用命令操作)

構建多模塊的Spring Boot項目步驟全紀錄

可以看到,這幾個模塊都是SUCCESS,說明構建成功了

那我們要的可以運行的jar文件在server模塊的target目錄下,我們找到它

構建多模塊的Spring Boot項目步驟全紀錄

最后放到服務器上運行這個jar包

使用命令:nohuo java -jarorder-server-0.0.1-SNAPSHOT.jar > order.log 2>&1 &

構建多模塊的Spring Boot項目步驟全紀錄

可以看到,項目已經成功啟動了,端口號為默認的8080

至此,構建多模塊的SpringBoot項目就已經告一段落了

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女