Nexus相關實作2

Maven拉取專案儲存壓縮檔

ZONGRU Li
Jun 28, 2022

透過前一篇建置好一個簡單的Nexus環境

先用前面學過的Maven隨便推個Jar上去

首先在本機的.m2內放好settings.xml裡面寫好遠端repo的帳密

如上先簡單給Repo一個idtest

然後今天隨便找個jar推上去,例如:

遠端庫要推的url位置就是:

所以整理要推送的指令就是:

mvn deploy:deploy-file  \
-DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<type-of-packaging> \
-Dfile=<path-to-file> \
-DrepositoryId=<id-to-map-on-server-section-of-settings.xml> \
-Durl=<url-of-the-repository-to-deploy>
#隨意組合成為如下:mvn deploy:deploy-file \
-DgroupId=com.pig.tw \
-DartifactId=justdemo \
-Dversion=1.0.0 \
-Dpackaging=jar \
-Dfile=demo-0.0.1-SNAPSHOT.jar \
-DrepositoryId=test \
-Durl={上面的url}

這時候就可以到Nexus上面瀏覽該Repo內容:

我這邊特地同理隨便再上兩個版本:

在來就是要找Maven的方法來反向拉取該jar檔(參考這篇LINK)

找到最新的Maven官方套件(LINK):

經過研究後,要先用get的插件,下載到本地端的.m2目錄內

如果再加上Maven上面doc中沒有提到的dest參數(也就是-Ddest)就可以了

#get部分(底下abc.jar名稱自己調整):
mvn dependency:get \
-DgroupId=com.pig.tw \
-DartifactId=justdemo \
-Dversion=1.0.0 \
-Dpackaging=jar \
-Ddest=C:/Users/User/Desktop/temp/test/abc.jar \
-Dtransitive=false \

-DrepositoryId=test \
-DremoteRepositories=test::::http://35.77.84.63:8080/repository/maven-releases/
以上請特別注意有一個大坑在remoteRepositories的值
前面還是要給settings.xml裡面的RepoServer Id,然後中間隔四個冒號
(請看解說
LINK或參考官網LINK如下圖)

以下是稍早沒有給-Ddest的時候:

接著就是完整的:

至此延伸一個問題是,我應該能強制重新下載jar

或是可以清除本地端.m2裡面指定的artifect jar內容

來促使執行上面的dependency:get都能重新下載

現在我有這個內容:

待研究...

我試著先打開可以允許重新deploy:

原本是這樣:

我先把這個Repo改成:

執行重推deploy:

後來看到這篇解說(LINK):

所以我試著想辦法推新的jar檔上去(促使checksum有變)

在重拉看看!

目前還是舊的在上面:

重推上述重包後的Jar:

確認是否有更新到Nexus上的jar

以上到Nexus推上都沒問題

接著確認當前本地端的m2目錄有:

並且工作目錄也清空:

嘗試重跑上面研究出來的dependency:get完整語法

看是否會更新m2目錄jar

但是特別注意到要帶-U

#所以整理語法如下:
mvn -U \
dependency:get \
-DgroupId=com.pig.tw \
-DartifactId=justdemo \
-Dversion=1.0.0 \
-Dpackaging=jar \
-Ddest=C:/Users/User/Desktop/temp/test/abc.jar \
-Dtransitive=false \

-DrepositoryId=test \
-DremoteRepositories=test::::http://35.77.84.63:8080/repository/maven-releases/

有找到一篇Shell操作,如果真的不行的話,可能可以參考看看(LINK):

看起來Shell應該也不是太複雜才對

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

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

No responses yet