SpringBoot實現在一個模塊中引入另一個模塊
SpringBoot在一個模塊中引入另一個模塊
實例:
springBoot中有cms_dev項目,下面有ai模塊和dms模塊,而且ai模塊中沒有啟動類,需要將ai引入到dms模塊中。

解決方案
1、在需要調用的模塊的pom文件中添加被調用模塊的依賴,也就是在dms模塊的pom.xml中去添加ai的依賴
<dependencies>
<dependency>
<groupId>com.dms</groupId>
<artifactId>ai</artifactId>
<version>v1</version>
</dependency>
</dependencies>
```/2、清除每個模塊的緩存
3、啟動dms模塊,然后就可以去調用ai模塊中的接口了。
SpringBoot多模塊之間引用報錯問題
困擾了半個下午的問題,springboot多模塊之間引用,直接運行都是ok的,依賴包里也有,但是編譯時就是報錯。
項目結構如下
parent(父類工程)
|
| - - - - - common(通用工具類子工程)
|
| - - - - - projectA(springboot子工程,依賴common工程)
|
pom.xml
問題描述
通過parent父工程進行Maven install,parent父工程和common子工程打包成功,projectA子工程打包失敗并報錯
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project projectA: Compilation failure
[ERROR] /xxxx.java:[14,36] 程序包com.xxx.xxx.utils不存在
注意:就算projectA能打包成功,運行后調用,也會報common下的類找不到異常,為同一問題
關鍵錯誤信息截圖:

解決方案
在common子工程下的pom.xml,添加以下配置
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <classifier>exec</classifier> </configuration> </plugin> </plugins> </build>
原因分析
common也是SpringBoot工程,SpringBoot工程打包編譯時,會生成兩種jar包,一種是普通的jar,另一種是可執(zhí)行jar。
默認情況下,這兩種jar的名稱相同,在不做配置的情況下,普通的jar先生成,可執(zhí)行jar后生成,造成可執(zhí)行jar會覆蓋普通的jar。
而projectA工程無法依賴common工程的可執(zhí)行jar,所以編譯失?。撼绦虬黿xx不存在。
添加配置后截圖如下,其中common-1.0-SNAPSHOT-exec.jar為可執(zhí)行jar,common-1.0-SNAPSHOT.jar為普通jar包。

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot整合Redis之編寫RedisConfig
RedisConfig需要對redis提供的兩個Template的序列化配置,所以本文為大家詳細介紹了SpringBoot整合Redis如何編寫RedisConfig,需要的可以參考下2022-06-06
springboot整合新版minio和minio的安裝完整教程(新人必看)
文章詳細介紹了如何在Docker中安裝和配置MinIO,包括拉取鏡像、創(chuàng)建數據卷、運行容器、設置訪問密鑰和端口等步驟,還展示了如何在Spring Boot應用中整合MinIO,并編寫前端代碼進行文件上傳測試,感興趣的朋友跟隨小編一起看看吧2025-12-12
java接收文件流+response.body()調用兩次問題(分別接收文件和對象)
這篇文章主要介紹了java接收文件流+response.body()調用兩次問題(分別接收文件和對象),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

