Nexus安裝及搭建配置

1、Nexus安裝(Linux)

1.1下載Nexus,地址:http://www.sonatype.org/nexus/go

1.2 解壓安裝包並啓動

    tar -zxvf nexus-x.xx.x-unix.tar.gz

    進入bin目錄,執行 ./nexux start 命令啓動


啓動起來後,通過瀏覽器訪問http://ip:8081就可以訪問了。界面如下所示:


1.3Repositories 則用來配置遠程資源和本地資源,

   其中支持Proxy類型資源,表示遠程資源的鏡像,

   host類型的資源表示本地資源,用於保存第三方資源或團隊內部共享的資源等

   group類型資源是組,可以將多個proxy或host類型的資源構建成一個組,供Maven使用等

注意事項:

1、類似於Nexus 2的遠程資源保存路徑配置,在Nexus 3中進行了分組管理

2.  Nexus 2 能夠支持資源信息的拷貝,提供xml格式,而Nexus 3 暫時還不支持該xml格式拷貝。

3.  Nexus 2 能夠下載遠程的索引到本地,供搜索查詢使用,但是Nexus 3 暫時還不支持,在Nexus 3 中查詢的都是已經有請求該鏡像庫的資源,對於未從該鏡像庫下載過的資源是無法查詢到的。那麼在Nexus 3 搭建初期,沒有使用前,在該系統是查詢不到任何資源的,需要先使用程序去調用該鏡像,纔會有資源使用。

4.  Nexus 3 暫時不支持下載遠程鏡像的索引。只有當Maven中設置了Nexus 3 的資源庫,Nexus 3 會在具體編譯項目的時候先從遠程下載對應的資源到本地,然後傳輸給各個客戶端使用。 這樣也就不用跟Nexus 2 中那樣再【Repair Index】來更新索引了。

2、配置搭建Nexus

 2.1 Nexus 啓用上傳功能

    團隊有了私有的鏡像服務器以後,團隊內部代碼的依賴也就不再需要源碼依賴了,大家可以通過發佈不同版本的jar到nexus鏡像上來供調用者直接通過Maven下載使用,這樣不同研發人員直接的依賴也就沒有那麼強了,大家可以基於已經發布的版本進行各自的開發。

那麼如何發佈個人的jar資源到團隊內部鏡像上呢? 

    1、新建一個Snapshot倉庫(snapshot快照庫和release發佈庫)

    1.1 snapshot快照倉庫用於保存開發過程中的不穩定版本(新建時選擇此類型)

    

    1.2release正式倉庫則是用來保存穩定的發行版本。部署此版本會出現400錯誤


  2. 在Nexus 中創建一個gaomy的角色,擁有的權利爲【nx-repository-view-maven2-*-edit】和【nx-repository-view-maven2-*-add】權利,如果該角色將來可能還有nuget,npm相關上傳權利,則將其權利改爲【nx-repository-view-*-*-edit】和【nx-repository-view-*-*-add】權利。

  3. 創建用戶,用戶擁有的角色爲【nx-anonymous】和剛創建的【developer】角色。其中nx-anonymous角色是nexus默認自帶的角色。

  4. 在.m2文件夾下的settings.xml配置文件中增加<servers>的配置。

<servers>
        <server>
            <id>menu</id> /**這裏的id需要與pom文件distributionManagement中一致,爲倉庫名稱**/
            <username>gaomy</username>
            <password>admin123</password>
        </server>

    </servers>


     <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://192.168.242.129:8081/repository/maven-public/</url> /**(鏡像地址)**/
    </mirror>
  </mirrors>

    <profiles>
    <profile>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <repositories>
        <repository>
          <id>menu</id>
          <name>Nexus Public Repository</name>
          <url>http://192.168.242.129:8081/repository/menu/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>

 4.  在需要上傳jar資源的項目的pom.xml中增加<distributionManagement>配置,其中<id>設置需要跟.m2文件夾下的settings.xml中<servers>下的id相同。<url>需要指定nexus中配置的hosts Repository資源的地址。放到setting中不起作用,以後可以放到父pom文件中

<distributionManagement>
        <repository>
            <id>server_id</id>
            <name>Nexus Release Repository</name>
            <url>http://nexus_ip:8081/repository/host-releases/</url>
        </repository>
    </distributionManagement>


 四、Nexus 啓用SNAPSHOTS

  團隊內部在開發過程中爲了相互可以互不影響的開發,需要時常將未穩定版的jar發佈出來供團隊其他人員調用,這時候建議使用SNAPSHOT版本,那麼SNAPSHOT版本怎麼發佈到Nexus上呢。如果以當前的配置,發佈SNAPSHOT過程會失敗,因爲Nexus默認是不啓用SNAPSHOT的。那麼怎麼啓用SNAPSHOT及如何上傳SNAPSHOT版本資源呢?

  啓用SNAPSHOT的方式爲在.m2文件夾下的settings.xml中增加<profile>設置

<!-- 這個默認配置決定了我們的Maven服務器開啓snapshot配置,否則不能下載SNAPSHOTS的相關資源 --> 
 <profiles>
    <profile>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <repositories>
        <repository>
          <id>menu</id>
          <name>Nexus Public Repository</name>
          <url>http://192.168.242.129:8081/repository/menu/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>


五 常見錯誤:

1、Return code is: 401, ReasonPhrase:Unauthorized

解決:

   1.1是否是新增倉庫的用戶名、密碼

    1.2 setting文件是否生效,路徑是否正確

    1.3 setting中server的id和pom中distributionManagement中id是否一致

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章