Bulk Upload to Nexus Maven Repo研究
最近工作問題,需要在離線環境上傳已經抓好的local Maven Repo
但是想當然爾不會想要一個個dependency上傳到Nexus上
網路上找到有人寫的Shell Script(LINK):
整理如下:
先註解下方的mvn指令進行測試
確認Nexus上面的release跟snapshots兩個Repo目前沒有東西
暫時註解mvn指令部分看看怎麼跑
並且給定搜索整理dependency的路徑:
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 id的shell寫法:
#找到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成功: