搭建Maven私服(使用Nexus)

搭建私服能夠作什麼? 
一、若是公司開發組的開發環境所有內網,這時如何鏈接到在互聯網上的Maven中央倉庫呢? 
二、若是公司常常開發一些公共的組件,如何共享給各個開發組,使用拷貝方式嗎?若是這樣,公共庫升級了怎麼辦?html

固然能夠解決的問題可能不止上面兩點,下面來介紹在Linux中搭建本身的Maven私服,使用Nexus。maven

1、下載和安裝

網址:http://www.sonatype.org/nexus/go/ 
這裏寫圖片描述測試

下載包:nexus-2.12.0-01-bundle.tar.gz 
解壓包:tar -zxvf nexus-2.12.0-01-bundle.tar.gz 
默認端口爲8081,如需修改請查看配置文件 conf/nexus.properties 
它自己不建議在root用戶下使用,若是咱們須要在root用戶下啓動服務,要先配置 bin/nexus 文件中的 RUN_AS_USER=rootui

2、私服的啓動和配置

啓動url

[root@localhost nexus-maven]# cd nexus-2.12.0-01/bin/
[root@localhost bin]# ./nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
[root@localhost bin]# ./nexus status
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Nexus OSS is running (34504).
[root@localhost bin]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

啓動後訪問首頁: http://192.168.19.130:8081/nexus/index.htmlspa

登陸默認帳號/密碼 admin/admin123 
這裏寫圖片描述.net

打開 Repositories 將列表中全部Type爲proxy 的項目的 Configuration 中的 Download Remote Indexes 設置爲True 
這裏寫圖片描述code

將Releases倉庫的Deployment Policy設置爲*Allow ReDeploy 
這裏寫圖片描述server

設置 deployment 帳戶密碼 
這裏寫圖片描述 
這裏寫圖片描述xml

而後在Central 倉庫上右鍵而後點擊 Repair Index 下載中心倉庫的索引文件,若干時間後,能夠點擊下邊的 Browse Index 便可看見下載的索引文件。

固然咱們也避免不了會使用到一些第三方的 jar ,而這些jar包也不存在於互聯網上的maven中央倉庫中,這時咱們能夠手工添加jar 到咱們的私服中。 
添加第三方 jar 以下: 
這裏寫圖片描述

若是須要刪除,以下: 
這裏寫圖片描述

3、本地項目配置引用私服

在項目的 pom.xml 中配置私庫地址,pom.xml 的下面添加:

<!-- 私有倉庫 -->
    <repositories>  
        <repository>  
            <id>public</id>  <!--這個ID須要與你的組group ID一致--> 
            <name>Public Repository</name>
            <url>http://192.168.19.130:8081/nexus/content/groups/public</url>   
        </repository>  
    </repositories> 

    <!-- 打包發佈 -->
    <distributionManagement>
        <repository>
            <id>releases</id><!--這個ID須要與你的release倉庫的Repository ID一致-->
            <url>http://192.168.19.130:8081/nexus/content/repositories/releases</url>
        </repository>

        <snapshotRepository>
            <id>snapshots</id><!--這個ID須要與你的snapshots倉庫的Repository ID一致-->
            <url>http://192.168.19.130:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在settings.xml 中配置 server 帳戶信息:

<servers>
     <server>
        <id>releases</id>
        <username>deployment</username>
        <password>dev123</password><!--這個密碼就是你設置的密碼-->
    </server>
    <server>
        <id>snapshots</id>
        <username>deployment</username>
        <password>dev123</password><!--這個密碼就是你設置的密碼-->
    </server>
  </servers>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

須要說明一點: 
當pom.xml中同時配置了releases倉庫和snapshots倉庫時。 
pom.xml文件開頭的版本配置1.0.0-SNAPSHOT爲build到snapshots庫, 
pom.xml文件開頭的版本配置1.0.0 (不帶-SNAPSHOT) 的會build到releases庫, 
若是隻配置了releases庫而版本號寫的是帶-SNAPSHOT的,build到最後一步會報400錯誤,由於它找不到對應的庫。

4、測試

一、新建一個簡單的maven項目,隨便寫個類。 
在pom.xml 文件按上面 3、本地項目配置引用私服 方法添加 私有倉庫和打包發佈配置 
而後使用命令 mvn deploy 發佈成功後,此時咱們在咱們的私服中就能夠看到發佈後的結果,以下: 
這裏寫圖片描述

二、再新建一個項目,或者使用已有的maven項目(最好使用別人的環境不一樣的電腦)。 
在pom.xml 中和第1步同樣先配置私庫地址,而後添加第1步發佈後的 dependency 後,就能夠看到jar 被正常加載到工程中了。 

 

https://blog.csdn.net/yamaxifeng_132/article/details/52479891

相關文章
相關標籤/搜索