天天看點

jar包搜尋_【Maven】解決本地jar依賴背景抽絲剝繭于是找到下面的方案,使用Maven本地jar包。

jar包搜尋_【Maven】解決本地jar依賴背景抽絲剝繭于是找到下面的方案,使用Maven本地jar包。

背景

最近有一個非常古老的JavaEE項目(外包公司給做的,我都想放棄了),使用Maven管理的。突然有一天,同僚在本地運作時,發現下載下傳依賴慢如蝸牛,究竟是什麼東東在作祟呢?讓我一一道來。

抽絲剝繭

一上來就在項目根目錄執行mvn package,發現項目使用了一個Maven私服,私服位址還是ip,

使用ping 私服ip,結果ping不同。說明這個私服已經無法使用。問過三方公司之後,我也是無語,他們也是丈二和尚摸不着頭腦,估計也是直接拿别人的項目應付的。

既然這個Maven私服無法使用,那幹脆去掉吧。

果然不出所料,一下子出現了錯誤,出現錯誤,是好事。

jar包搜尋_【Maven】解決本地jar依賴背景抽絲剝繭于是找到下面的方案,使用Maven本地jar包。

顯示部分依賴找不到。于是,到阿裡雲中央倉庫(使用的是阿裡雲鏡像庫)搜尋相關的依賴包,果然是沒有搜尋到結果。

那本地倉庫應該有吧,之前該項目是順利運作的。檢視完之後,果然本地倉庫保留着所有确實的jar包。

那為什麼本地倉庫存在jar包,不在本地找,非要去遠端下載下傳呢?(一直沒想明白)

又不想搭建Maven私服,那該怎麼辦呢?

有事沒事谷歌。

于是找到下面的方案,使用Maven本地jar包。

com.nealma my-jar 1.0system${project.basedir}/lib/my-jar.jar
           

1,在項目根目錄建立了lib檔案夾,所有的jar包從~/.m2中拷貝到了該目錄。

2,指定scope為system,設定systemPath。

本該順利的,誰知子子產品執行的時候,${project.basedir}目錄是子子產品變化的。

那就用絕對路徑吧,總算順利執行。

但是想了想,不行啊,别人用的時候,還得手動更該,豈不煩死。

于是在每個子子產品都拷貝了一份lib,好了,可以好好玩耍了。