1. 程式人生 > 實用技巧 >nexus常用配置

nexus常用配置

下壓縮包的時候,我用了代理還是下的卡住了,於是就用了1M頻寬的香港阿里雲下載,下載的特別快,就是往本地傳的特別慢,所以後面買個dell小主機,做個軟路由,這樣所有的虛擬機器都能下載了。nexus3改動比較大,之前的部落格也簡單的寫過,還能支援docker映象了。nexus2用的還是習慣了,可以把所有的jar包往sonatype-work裡面一丟就行了。

nexus的倉庫型別

具體的位置:

[root@cicd storage]# pwd
/wgr/sonatype-work/nexus/storage
[root@cicd storage]# ll
total 0
drwxr-xr-x 4 root root 62 Jul 21 21:39 apache-snapshots
drwxr-xr-x 5 root root 76 Jul 21 21:39 central
drwxr-xr-x 4 root root 33 Jul 21 21:39 central-m1
drwxr-xr-x 5 root root 76 Jul 21 21:39 public
drwxr-xr-x 5 root root 76 Jul 21 21:39 releases
drwxr-xr-x 5 root root 76 Jul 21 21:39 snapshots
drwxr-xr-x 6 root root 87 Jul 21 21:48 thirdparty
[root@cicd storage]# cd public
[root@cicd public]# ll
total 4
-rw-r--r-- 1 root root 25 Jul 21 21:39 archetype-catalog.xml
[root@cicd public]# cd ..
[root@cicd storage]# ll
total 0
drwxr-xr-x 4 root root 62 Jul 21 21:39 apache-snapshots
drwxr-xr-x 5 root root 76 Jul 21 21:39 central
drwxr-xr-x 4 root root 33 Jul 21 21:39 central-m1
drwxr-xr-x 5 root root 76 Jul 21 21:39 public
drwxr-xr-x 5 root root 76 Jul 21 21:39 releases
drwxr-xr-x 5 root root 76 Jul 21 21:39 snapshots
drwxr-xr-x 6 root root 87 Jul 21 21:48 thirdparty
[root@cicd storage]# cd central
[root@cicd central]# cd ../thirdparty/
[root@cicd thirdparty]# ll
total 4
-rw-r--r-- 1 root root 25 Jul 21 21:39 archetype-catalog.xml
drwxr-xr-x 3 root root 22 Jul 21 21:48 com
[root@cicd thirdparty]#

上傳jar包到私服上

  1. 需要修改settings.xml檔案,配置連線私服的使用者和密碼。此使用者名稱和密碼用於私服校驗,因為私服需要知道上傳的賬號和密碼是否和私服中的賬號密碼一直。

配置:

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

releases連線釋出版本專案倉庫,snapshots連線測試版本專案倉庫

  1. 配置專案Pom.xml

    配置私服倉庫的地址,本公司的自己的jar包會上傳到私服的宿主倉庫,根據工程的版本號決定上傳到哪個宿主倉庫,如果版本為release則上傳到release倉庫,如果版本為snapshot則上傳到私服的snapshot倉庫

    <distributionManagement>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Nexus Release Repository</name>
            <url>http://192.168.1.119:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>releases</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://192.168.1.119:8081/nexus/content/repositories/releases/</url>
        </repository>
    </distributionManagement>

注意:pom.xml和settings.xml中的id一致。

測試進行上傳:

從私服下載Jar包

管理倉庫組:

nexus中包括很多倉庫,Hosted中存放的是企業自己釋出的jar及第三方公司的jar包,porxy中存放的是中央倉庫的jar,為了方便從私服下載Jar包可以將多個倉庫一個倉庫組,每個工程需要連線私服的倉庫組下載jar包。

開啟nexus配置的倉庫組,如下圖:

上圖中倉庫組包括了本地倉庫,代理倉庫等。

在settings.xml中配置倉庫

在客戶端的settings.xml中配置私服的倉庫,需要實用profile定義倉庫

<profile>   
    <!--profile的id-->
   <id>dev</id>   
    <repositories>   
      <repository>  
    <!--倉庫id,repositories可以配置多個倉庫,保證id不重複-->
        <id>nexus</id>   
        <!--倉庫地址,即nexus倉庫組的地址-->
        <url>http://192.168.1.119:8081/nexus/content/groups/public/</url>   
        <!--是否下載releases構件-->
        <releases>   
          <enabled>true</enabled>   
        </releases>   
        <!--是否下載snapshots構件-->
        <snapshots>   
          <enabled>true</enabled>   
        </snapshots>   
      </repository>   
    </repositories>  
     <pluginRepositories>  
        <!-- 外掛倉庫,maven的執行依賴外掛,也需要從私服下載外掛 -->
        <pluginRepository>  
            <!-- 外掛倉庫的id不允許重複,如果重複後邊配置會覆蓋前邊 -->
            <id>public</id>  
            <name>Public Repositories</name>  
            <url>http://192.168.1.119:8081/nexus/content/groups/public/</url>  
        </pluginRepository>  
    </pluginRepositories>  
  </profile>  

進行下載測試: