Maven 上傳 現有的 jar包到遠端倉庫

                                    

      前言:通常允許上傳的遠端倉庫有兩種:Snapshots和Releases,分別為快照版倉庫和穩定版倉庫。   快照版倉庫用於存放不穩定的開發包,穩定版倉庫用於存放穩定的包。   
      解決方案有兩個: 

 通過Nexus UI 介面部署

有時候有個jar檔案你無法從公共Maven倉庫找到,但是你能從其它得到這個jar檔案(甚至是POM),那麼你完全可以將這個檔案部署到Nexus中,使其成為標準流程的一部分。步驟如下:    點選左邊導航欄的”Repository”,在右邊的倉庫列表中選擇一個倉庫,如“3rd Party”,然後找到下面的tab,選擇最後一個“Artifact Upload”,你會看到構件上傳介面。選擇你要上傳的構件,並指定POM,(或者手工編寫GAV等資訊),最後點選Upload,該構件就直接被部署到了Nexus的”3rd Party”倉庫中。如圖:

2、通過Maven命令列部署

maven package:打包到本專案,一般是在專案target目錄下。
maven install:打包會安裝到本地倉庫。
maven deploy:將打包的檔案釋出到遠端倉庫(私服),提供其他人員進行下載依賴。==》這個在本地倉庫也會生成

<!-- 遠端倉庫-->
  <servers>
    <server>
      <id>maven-snapshots</id> // 快照倉庫 ID 
      <username>admin</username>
      <password>admin1234</password>
    </server>
	<server>
      <id>maven-releases</id> // 釋出倉庫 ID 
      <username>admin</username>
      <password>admin1234</password>
    </server>
  </servers>

注:認證 id 這個必須和 nexus DrepositoryId 對應的倉庫標識(id)一致,那麼怎麼檢視倉庫 ID 呢?

如下圖

Nexus 2.12.0-01

OSS 3.6.0-02 版本介面如下

別人生成好的 jar 的 pom 配置資訊如下:

<dependency>
    <groupId>com.zhenai.dakehu</groupId>
    <artifactId>dakehu-commons</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

開啟CMD,將其定位到你要上傳的jar包的資料夾,類似的輸入以下命令:(注意紅色的要一一對應)

mvn deploy:deploy-file -DgroupId=com.zhenai.dakehu -DartifactId=dakehu-commons -Dversion=1.0.0-SNAPSHOT -Dpacckaging=jar -Dfile=dakehu-commons-1.0.0-SNAPSHOT.jar -DrepositoryId=maven-snapshots -Durl=http://112.124.33.150:8081/repository/maven-snapshots/

–Dversion  版本資訊
-DrepositoryId  倉庫標識id
-Durl 私服上倉庫的位置,開啟nexus——>repositories選單,可以看到該路徑。
-Dfile 直接寫檔名即可

如果cmd 當前路徑與jar包的路徑在同一資料夾下,如果不在同一個目錄下,需要在-Dfile 後面寫上檔案的絕對路徑。

deploy 上傳遇到的問題

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts: Could not transfer artifact com.zhenai.dakehu:dakehu-commons:jar:1.0.0-20171212.105921-1 from/to maven-snapshots (http://112.124.33.150:8081/repository/maven-snapshots/): Failed to transfer file: http://112.124.33.150:8081/repository/maven-snapshots/com/zhenai/dakehu/dakehu-commons/1.0.0-SNAPSHOT/dakehu-commons-1.0.0-20171212.105921-1.jar.

Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1] ===> 使用者驗證失敗

說一下我遇到的問題:

1、neuxs 預設的帳號密碼  admin/admin123,同事偷偷把密碼改為 admin1234

2、maven setting.xml 中倉庫認證的 id 不對

<id>maven-snapshots</id> // ===》這個必須和 nexus DrepositoryId 對應的倉庫標識(id)一致

Nexus入門指南(圖文)

Maven學習-Profile詳解

maven全域性配置檔案settings.xml詳解

 

 

 


(adsbygoogle = window.adsbygoogle || []).push({});

function googleAdJSAtOnload() {
var element = document.createElement(“script”);
element.src = “//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js”;
element.async = true;
document.body.appendChild(element);
}
if (window.addEventListener) {
window.addEventListener(“load”, googleAdJSAtOnload, false);
} else if (window.attachEvent) {
window.attachEvent(“onload”, googleAdJSAtOnload);
} else {
window.onload = googleAdJSAtOnload;
}