Idea中SpringBoot多模塊項目的建立實現
What
內含一個或多個maven模塊的SpringBoot項目稱為SpringBoot多模塊項目
Why
便于維護 將一個大的單體項目分成多個子模塊有利于模塊間的維護, 刪除或移動單個模塊時對其他模塊的影響也比較小 單個模塊還可以復用
共享依賴 只需要在父類中定義公共的依賴項,子類模塊都會共享父類的依賴項 在大型項目中會使得代碼更容易簡潔。
How
1.父模塊
創建父項目(SpringBoot)
刪除不需要的目錄
去除src .mvn mvnw mvnw.cmd 文件
pom
packaging標簽 打包方式改為'pom', 表示這個模塊是 聚合模塊 把子類模塊都'聚合'起來 使用maven打包,可以從這個模塊開始,會自動計算打包順序
<packaging>pom</packaging>
dependencies與dependencyManagement標簽
1. dependencies將依賴放入標簽中 子模塊會自動引入父類的的依賴
2. dependencyManagement將依賴放入標簽中 子模塊 不會 自動引入父類的的依賴 還需要在子類中聲明一次依賴 GAV中 不需要 聲明version標簽,version同父類中的一致
父類pom文件demo
<!--父類: springboot自帶的啟動類父類--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--創建時填寫的基本信息--><groupId>com.ybj</groupId><artifactId>my-app</artifactId><version>0.0.1-SNAPSHOT</version><name>my-app</name><description>springboot多項目</description><!--父類的packing只能是pom--><packaging>pom</packaging><!-- 子類直接繼承--> <dependencies><!-- 子類需要在pom中 手動加入依賴(version不用寫)--> <dependencyManagement>
modules標簽 這個標簽管理的是被聚合的模塊 當新建子模塊時,modules會自動添加單個的module標簽
啟動類
父模塊啟動類,是整個模塊的啟動類 所有的請求都走父模塊的端口 為了使子模塊的服務也能啟動,需要在父模塊啟動類上加入注解
@ComponentScan(basePackages = {'com.ybj.*',})
2.子模塊
1.創建子模塊
選擇Module
選擇maven項目
輸入具體信息
2.pom
packaging標簽 這里可以選擇jar或者war 指定打包方式
parent 子類pom中的parent自動指向了父類的GAV 子類會自動引入父類pom中 dependencies 的中依賴項
<!-- 父類:自動選擇了父類--> <parent> <artifactId>my-app</artifactId> <groupId>com.ybj</groupId> <version>0.0.1-SNAPSHOT</version> </parent>
模塊間依賴 需要依賴某個模塊,可以在pom中聲明 這里的依賴是從本地倉庫下載的,不是遠程倉庫
Maven Helper插件 在idea中安裝maven helper插件 點擊pom文件,選擇 Dependency Analyzer
即可查看并搜索依賴項,這對于解決依賴沖突很有幫助
4.打包
方式1:聚合模塊直接打包
在聚合模塊打包,會自動計算依賴順序,依次打包
依次執行 clean 與 install maven會自動計算構建順序
方式2:使用插件
方式1的問題就是耗費時間長, 因為是全部打包, 所以就需要實現單個模塊打包 這里需要借助spring-boot-maven-plugin插件
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.0.RELEASE</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
5. 常見問題
依賴沖突
因為子類會繼承父類的依賴項,所以可能 導致依賴沖突,從而使項目無法啟動。 這里可以使用maven helper插件進行沖突的排查
到此這篇關于Idea中SpringBoot多模塊項目的建立實現的文章就介紹到這了,更多相關Idea中SpringBoot多模塊內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: