天天看點

dependencies導緻的Maven依賴出錯包紅問題解決方法

多子產品和分布式開發一般都是有專門的的dependencies來進行jar包的版本依賴問題,但是最近添加的幾個新依賴一直出錯,包一直是紅的,很煩人

dependencies導緻的Maven依賴出錯包紅問題解決方法

檢視maven倉庫發現相關的包下載下傳錯誤,不知道為什麼多了個“}”(?什麼鬼),然後自己就算弄了正常的包(====正常因為國情等問題導緻的無法自動下載下傳問題可依此方法解決,文章下面附方法====),它還是會自己去下載下傳錯誤的包導緻出錯。

頭疼了好久才發現

dependencies導緻的Maven依賴出錯包紅問題解決方法

自動擷取版本後面多了個“}”,馬虎是原罪啊,估計是Idea的自動添加括号機制造成的,自己又沒有及時發現,是以才白折騰了好久!!

附:另外,maven有時候會因為一些特殊情況無法正常下載下傳某個jar包,一個人的話當然可以自己去中央倉庫下載下傳下來放在本地倉庫就可以正常使用了,但是協同開發的話别人也需要相關的jar包啊,不可能都去自己再下載下傳再去手動放置吧,是以就需要maven的插件來幫助管理這下第三方自己下載下傳的jar包。

第一步:從中央倉庫找到相應版本的jar包下載下傳到本地

dependencies導緻的Maven依賴出錯包紅問題解決方法

第二步:在dependencies的pom裡,<build>節點下的<pluginManagement>節點下的<plugins>節點下添加

maven-install-plugin      

插件(版本自己選擇)

dependencies導緻的Maven依賴出錯包紅問題解決方法

第三步:在總項目下建立一個項目external(名字随意),并在項目下建立libs包,并把下載下傳的jar檔案放入其中,然後建立相關pom.xml并依賴dependencies,并把maven-install-plugin插件依賴,并根據下載下傳的來源GAV填寫相關的資訊(build節點下的plugin節點内)

dependencies導緻的Maven依賴出錯包紅問題解決方法
dependencies導緻的Maven依賴出錯包紅問題解決方法

每添加一個第三方包,就增加一個execution節點,該節點下的id必須唯一(自己命名),phase是定義什麼時候執行,clean時執行,file是檔案jar包的存放位置

第四步:mvn clean (對整個項目執行clean操作),這樣就添加進本地倉庫了(拿到新代碼就先clean一下,確定依賴正常)

dependencies導緻的Maven依賴出錯包紅問題解決方法
dependencies導緻的Maven依賴出錯包紅問題解決方法

另外下載下傳的第三方jar包,如果公司有自己的nexus伺服器,那就直接上傳私服就可以了