1. 程式人生 > 其它 >Maven匯入本地倉庫的jar包報錯———解決方法

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模組)

所有文章均為原創,轉載請註明出處。