Bulk Upload to Nexus Maven Repo研究

Bulk Upload to Nexus Maven Repo研究

ZONGRU Li
Aug 16, 2022

最近工作問題,需要在離線環境上傳已經抓好的local Maven Repo

但是想當然爾不會想要一個個dependency上傳到Nexus

網路上找到有人寫的Shell Script(LINK):

整理如下:

先註解下方的mvn指令進行測試

確認Nexus上面的releasesnapshots兩個Repo目前沒有東西

反正也不是公有庫的東西,無視!無視!

暫時註解mvn指令部分看看怎麼跑

並且給定搜索整理dependency的路徑:

files.out部分內容
release.out部分內容

snapshot.out可能剛好沒有,空的

首先先找到有jar檔的,參考上面腳本就是:

#找到所以jar檔的絕對路徑位置,並輸出為jar.txt:
targetPath="/path/to/.m2/"
find $targetPath -name '*.jar' -type f >> jar.txt

後來暫時研究Shell script有以下結果:

#拿到jar檔名稱腳本:
echo $絕對路徑|awk -F".m2/repository" '{print $NF}'|rev|cut -d/ -f1|rev
#拿到version名稱腳本:
echo $絕對路徑|awk -F".m2/repository" '{print $NF}'|rev|cut -d/ -f2|rev
#拿到artifact名稱腳本:
echo $絕對路徑|awk -F".m2/repository" '{print $NF}'|rev|cut -d/ -f3|rev

最後又研究出找到group idshell寫法:

#找到group id的shell寫法:
echo $絕對路徑|awk -F".m2/repository" '{print $NF}'|cut -c 2-|rev | cut -d/ -f4- | rev|tr / .

先完整以下印出來試試:

階段性的腳本為:

目前這樣印出來已經滿接近我要的結果了:

未完待續!

上面這個還沒打開mvn部分來測試(有空之後再補)

後來又有同事找到相關script語法(LINK):

這邊直接測試:

url就是貼進script裡面

把script檔案放到~/.m2/repository的目錄內(可以搬到別處,不一定要.m2)

執行:

然後會看到超快一堆log顯示:

確定有upload成功:

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet