spring-boot-maven-plugin插件打出的包無法被依賴

最近項目上碰到一個問題,一個spring boot項目,原先有三個module,其中module A不依賴於其它模塊,module B依賴module A,module C依賴module B和module A,其中module C爲啓動類。現在因業務需要,加入第四個模塊module D,module D依賴於前面三個module A、module B和module C。但是用maven打包的時候,前面三個module都沒有問題,第四個module報錯,報的錯誤是找不到類,這些找不到的類都是module C下的。

 

網上搜索後,看到有說法是spring-boot-maven-plugin打出來的jar包不可以被依賴,然後把module C下的pom.xml中對應的plugin註釋掉,可以正常編譯。然後繼續找spring-boot-maven-plugin的資料,原來使用spring-boot-maven-plugin插件打包的時候,Maven首先在package階段打包生成*.jar文件;然後執行spring-boot:repackage重新打包,將之前的*.jar包重命名爲*.jar.original,然後生成springboot的可執行jar包文件*.jar,所以我們真正需要依賴的是*.jar.original包。

 

如果需要生成可以執行的jar包,除了註釋掉spring-boot-maven-plugin插件,也可以在打包的時候跳過repackage

mvn clean package -Dspring-boot.repackage.skip=true

 

參考博客:

在使用spring-boot-maven-plugin的下生成普通的jar包

maven父子工程---子模塊相互依賴打包時所遇到的問題:依賴的程序包找不到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章