Nexus相關實作2
透過前一篇建置好一個簡單的Nexus環境
先用前面學過的Maven隨便推個Jar上去
首先在本機的.m2內放好settings.xml裡面寫好遠端repo的帳密
如上先簡單給Repo一個id叫test
然後今天隨便找個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裡面的Repo的Server 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應該也不是太複雜才對