springboot多模塊項目mvn打包遇到存在依賴但卻無法發(fā)現符號問題
更新時間:2024年09月21日 09:25:26 投稿:jingxian
在SpringBoot多模塊項目中,如果遇到依賴存在但無法發(fā)現符號的問題,常見原因可能是pom.xml配置問題,例如,如果某個模塊僅作為依賴而不是啟動工程,不應在其pom中配置spring-boot-maven-plugin插件,因為這將影響jar包的生成方式
springboot多模塊項目mvn打包遇到的問題 - 存在依賴但卻無法發(fā)現符號
這是一個什么問題呢?
我來闡述一下,問題大致是這么一個情況:
- 我有一個SpringCloud項目,每個微服務都是一個SpringBoot工程,其中有一個payment項目依賴了一個公共的模塊common項目。payment項目和common項目都同屬一個父工程的子module。
- 此時我想要把整合SpringCloud項目部署到服務器上,這時候我就需要打jar包,將jar放到服務器上,通過
java -jar *.jar命令來啟動SpringBoot項目 - 首先我肯定輸入
mvn clean install -DskipTests=true將common模塊進行打包到本地倉庫中 - 然后我再對payment項目進行打包
mvn clean package -DskipTests=true - 然后mvn命令error (找不到符號),既payment找不到common里的類,所以報錯,無法打包
我分析的理由
- 我一開始是檢查是否父項目的pom漏了module common項目,發(fā)現不是,payment和common都是同屬一個父項目的子module,而且子項目的
<parent>也都一個同一個父項目 - 然后我又檢查是否payment依賴的common的路徑或版本號出了問題,發(fā)現也正確
- 然后我就檢查是否.m2的倉庫中,包沒有打上,或者包不完整。檢查后發(fā)現也沒有
- 然后我就懷疑是否pom.xml的依賴配置問題,但是網上查springboot多模塊項目打包不成功的問題,也沒有收獲
最后的解決方案
該方案是我在某群求助后,一大佬解決的,真的是非常感謝,幫我解決了困擾我一個下午的問題。

我的問題就是在common項目的pom導入了spring-boot-maven-plugin插件,導致打的common jar包與平時的jar包不同。
當該jar包被其他模塊依賴,就會出現該jar無法被其他模塊訪問到。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>所以如果你的項目Module僅僅是作為jar包依賴使用的,而不是一個SpringBoot啟動項工程就千萬不要把spring-boot-maven-plugin插件配置到該項目的pom中。
導入了該插件所打的jar包和沒有該插件時所打的jar包是不同的。謹記
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Windows下將JAVA?jar注冊成windows服務的方法
這篇文章主要介紹了Windows下將JAVA?jar注冊成windows服務的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07

