最外層pom文件是用來管理其餘子模塊的父級pom,重點將<packaging>節點修改成pom,修改前<packaging>多是jar或warjava
這裏修改爲pom是由於打包時,父pom是依賴於子pom進行打包的,父pom會經過<modules>節點將全部的子pom模塊引入而且進行管理spring
<packaging>pom</packaging>
假設你已經設計好子模塊的拆分原則,這裏開始基於你本身的設計進行子模塊的建立服務器
例如:我將order項目拆分紅三個不通的子模塊,即common、client、server,每一個模塊負責的事情是不一樣的maven
第一步:右鍵項目名稱,選擇New->Modulespring-boot
第二步:在彈出的New Module窗口選擇Mavenui
第三步:點擊Next,並輸入子模塊的ArtifactId,如:common、client、server等,而後點擊Nextspa
第四步:檢查並確認子模塊名稱及路徑是否正確,若是正確則點擊Finish插件
至此,common模塊就建立成功了,你會發現order根目錄下多了一個common子模塊設計
建立了common模塊後,若是有須要移動至common子模塊下的代碼,則根據原來的代碼目錄結構,在common-src-main-java下建立相同的目錄結構便可code
例如:我項將ProductInfoOutput移動到common子模塊下,原來ProductInfoOutput的保路經爲com.imooc.order.common,那麼我須要在common-src-main-java下建立com.imooc.order.common包,並將ProductInfoOutput拽進去
補充說明:我在建立com.imooc.order.common包時遇到了一個問題,就是右鍵java文件夾而後選New->Package並建立com.imooc.order.common時,建立出來的包路徑時沒有層次結構的,也就是說IDEA單純的爲我建立了一個名爲com.imooc.order.common的文件夾
經研究發現,是視圖的問題,將左上角的Project改爲Project Files,而後按照上面的方式建立便可
在轉移test目錄下的代碼時,一樣須要注意test目錄下的包結構要與轉移前的結構一致,這裏以server模塊爲例,由於common下的test目錄沒有代碼
當咱們建立好多有的子模塊後,觀察最外層的父級pom文件內容,發現父級pom已經將咱們建立的子模塊做爲modules引入進來了
當咱們建立好多個子模塊後,子模塊間可能會存在依賴關係,例如個人server模塊會依賴common模塊下的ProductInfoOutput類
那麼我須要在server模塊的pom文件中將common模塊引入
其餘模塊間的依賴引用同理
修改完子pom的依賴關係後,必定要刷新pom文件,否則依賴不會生效
SpringBoot項目通常都會打成jar包部署,因此須要在pom中引入spring-boot-maven-plugin的maven插件
例如:我如今要打包order項目,此時個人SpringBoot運行主類在server模塊下,那麼我就須要以server模塊爲主要的打包對象
由於打包時,maven插件會去找SpringBoot的啓動類,若是沒有啓動類會打包失敗
那麼,此時我就須要在server模塊的pom中增長spring-boot-maven-plugin的相關配置
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
注意:在最外層的父級pom中若是一樣存在spring-boot-maven-plugin的配置,記得必定要刪除掉
在maven窗口一次執行Lifecycle下的clean和install(若是你會maven命令,也能夠用命令操做)
能夠看到,這幾個模塊都是SUCCESS,說明構建成功了
那咱們要的能夠運行的jar文件在server模塊的target目錄下,咱們找到它
最後放到服務器上運行這個jar包
使用命令:nohuo java -jar order-server-0.0.1-SNAPSHOT.jar > order.log 2>&1 &
能夠看到,項目已經成功啓動了,端口號爲默認的8080
至此,構建多模塊的SpringBoot項目就已經告一段落了