1. 程式人生 > >maven deploy上傳本地jar至私服

maven deploy上傳本地jar至私服

現在做java這一塊的研發基本上都是使用maven作為專案jar包的管理工具,而且用到的jar一般都是公網伺服器所存在的例如我一般到https://mvnrepository.com/ 中獲取所需jar的依賴配置資訊;
但是也有時會遇到公網中不存在的例如自己封裝的相關jar、第三方服務jar等,這時我們就需要想辦法將這種jar上傳到我們的私服中,以便大家使用!
我是通過使用maven的deploy命令將本地jar上傳到指定的私服中,步驟如下:
1.當然首先需要搭建一個私服環境,此處不做過多的介紹
2.配置maven環境變數
3.執行命令上傳

命令格式如下:

mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=E:\jar\alipay-sdk-java20170324180803.jar -DgroupId=com.alipay -DartifactId=sdk-java -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -DrepositoryId=snapshots -Durl=http://10.0.2.xx:8080/nexus/content/repositories/snapshots/

各引數代表含義為:

-Dmaven.test.skip=true                               //跳過編譯、測試
-Dfile=E:\jar\alipay-sdk-java20170324180803.jar      //jar包檔案地址,絕對路徑
-DgroupId=com.alipay                                 //gruopId,可自定義
-DartifactId=sdk-java                                //artifactId,可自定義
-Dversion                                            //版本號
-Dpackaging                                          //打包方式
-DrepositoryId                                       //遠端庫伺服器ID
-Durl                                                //遠端庫伺服器地址


注:可能出現的問題

1.Return code is: 401, ReasonPhrase:Unauthorized

說明沒有配置許可權:開啟maven conf 下的setting.xml 中加入如下程式碼:

	 <server>
    	    <id>snapshots</id>
			<username>admin</username>
			<password>admin</password>
    </server>

因為我將jar上傳至http://10.0.2.xx:8080/nexus/content/repositories/snapshots/

 所以-DrepositoryId=snapshots,而且授權id也是<id>snapshots</id>,如果你要上傳到其它倉庫下記得更改DrepositoryId和授權id

2.Return code is: 400, ReasonPhrase: Bad Request

(1)出現該問題有可能是已經上傳過了這個jar,但是policy沒有選擇Allow Redeploy;

(2)有可能版本不符,快照版不能選擇Release

(3)可以嘗試更改下版本 -Dversion=1.0.0-SNAPSHOT