mvn deploy命令上傳包

YatHo發表於2018-01-04

需求:有的時候需要單獨上傳release jar包,因為存在工程程式碼在A內網SVN,Nexus在B內網。這種情況下使用VPN也無法解決Jar包釋出的問題。

這個時候採取的方式只能是:

  打出jar包 - > 連線VPN -> 使用mvn deploy指定jar包和倉庫釋出Jar包至Nexus

 

一 配置settings.xml

 

因為nexus是需要登陸操作。

在settings.xml的<servers></servers>

<server>   
<id>release</id>   
<username>xxxx</username>   
<password>xxxx</password>   
</server>

 

如果進行deploy時返回Return code is: 401錯誤,則需要進行使用者驗證或者你已經驗證的資訊有誤。

 

二 cmd輸入命令

 

mvn deploy:deploy-file -DgroupId=com.xx.xxx -DartifactId=xxx -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=E:\xxx.jar -Durl=http://localhost:9090/nexus-2.2-01/content/repositories/release/ -DrepositoryId=release

 

DgroupId和DartifactId構成了該jar包在pom.xml的座標,專案就是依靠這兩個屬性定位。自己起名字也行。

Dfile表示需要上傳的jar包的絕對路徑。

Durl私服上倉庫的位置,開啟nexus——>repositories選單,可以看到該路徑。

DrepositoryId伺服器的表示id,在nexus的configuration可以看到。

Dversion表示版本資訊,怎樣得到一個jar包準確的版本呢?

解壓該包,會發現一個叫MANIFEST.MF的檔案,這個檔案就有描述該包的版本資訊。

比如Manifest-Version: 1.0可以知道該包的版本了。

 

上傳成功後,在nexus介面點選release 倉庫可以看到這包。

 

三 一些問題

 

發現問題

在敲擊該命令的時候,有時候看到提示需要POM檔案,但上傳包是不需要pom檔案的。

 

可能原因

最大可能是你語句打錯了如多了一個空格和換行,這樣語句直接截斷到換行前面,cmd就找它可以認識的語句執行,比如直接執行

mvn,而mvn是對專案打包,是要pom檔案的。

 

解決辦法

耐心把命令重新敲一遍。

相關文章