Maven導入本地倉庫的jar包報錯———解決方法


 Failed to read artifact descriptor for com.kerry.dubbo.teacher:api:jar:1.0錯誤解決

下面是前言環境,想看解決方法,可直接下滑至底部

前言:

今天做的一個微服務小案例(Teacher模塊與Student模塊交互)

通過dubbo + zookeeper 和 SpringBoot技術將兩個模塊進行拆分后,將模塊提供的Service服務注冊到Zookeeper做的注冊中心上。

包結構如下:

             

 

 

 案例中的各個moudel不做過多解釋,這里大概解釋一下:

api:負責存放模塊提供的Service的上級接口。其他需要使用到

   該模塊服務的只需要導入該模塊的API即可知道該模塊所提

   供的服務功能,隨后去注冊中心(ZK)上獲取對應的服務。

moudel:負責存放該模塊的實體類(pojo)和實體類對應的Mapper

server:提供該模塊服務(Service)的主要實現,隨后注冊到注冊

      中心(ZK)上,還可以在其中去調用其他模塊的服務。

 

在做完Teacher模塊之后,我想在Student模塊中去使用到Teacher模塊,此時在從注冊中心獲取服務之前,我需要先導入Teacher模塊的api.jar。

這個時候我就通過Maven的Lifecycle的install功能對API這個Moudel進行打包。

 

 

 由於我兩個模塊都是用的同一個Maven本地倉庫,所以打包之后我只需要去另一個模塊直接加載就行了。

隨后我來到Student模塊中在server的pom.xml對Teacher的api進行加載

 

 

此時項目中就報出了錯誤

 Failed to read artifact descriptor for com.kerry.dubbo.teacher:api:jar:1.0錯誤

並且我原先在本地倉庫導入的Student模塊的api.jar也跟着報錯

 

 在Maven加載包的時候,所有導入的包統統失敗

 

 

此時我們看項目已經導入的Jar中可以發現Teacher模塊API包已經導入進了項目並且已經看得到里面的類了

由此我們可以推斷出問題並不是出現在找不到JAR包上

 

 

最后通過查閱資料發現問題是:

如果說,項目是通過maven來管理構建項目且通過各個module形式存在,那么在deploye的時候需要將父POM文件也部署到私服上,否則會出現如上問題

 

也就是說,我們在進行模塊打包的時候需要將整個項目打包,而不是只打包模塊中單獨的一個Moudel(API模塊)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM