需求:有的時候需要單獨上傳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檔案的。
解決辦法
耐心把命令重新敲一遍。