Linux下安裝maven私服(nexus3)

一、所需軟件

jdk8,nexus3

Nexus下載地址:https://www.sonatype.com/download-nexus-repo-oss

 

二、安裝過程

1、將軟件上傳至/usr/local並解壓

2、安裝jdk和maven

(1)解壓完畢

(2)配置/etc/profile文件並刷新配置

(3)執行source /etc/profile刷新配置

(4)執行java –version和mvn –version查看,如果查看到版本信息則證明成功。

3、到正題了,安裝nexus

(1)私服介紹:私服是指私有服務器,是架設在局域網的一種特殊的遠程倉庫,目的是代理遠程倉庫及部署第三方構建。有了私服之後,當 Maven 需要下載構件時,直接請求私服,私服上存在則下載到本地倉庫;否則,私服請求外部的遠程倉庫,將構件下載到私服,再提供給本地倉庫下載。

http://images2015.cnblogs.com/blog/907596/201612/907596-20161220162726057-620806393.png

 

好處:
1)加速構建;
2)節省帶寬;
3)節省中央maven倉庫的帶寬;
4)穩定(應付一旦中央服務器出問題的情況);
5)控制和審計;
6)能夠部署第三方構件;
7)可以建立本地內部倉庫;
8)可以建立公共倉庫

 

(2)nexus結構

解壓後由兩部分組成,其中nexus-3.17.0-01包括了私服的應用配置和程序,sonatype-work用來存儲數據

1)其中端口修改在/nexus-3.17.0-01/etc/nexus-default.properties的

       application-port參數,默認爲8081,改爲8082

2)/nexus-3.17.0-01/bin/nexus.vmoptions有各種參數修改,比如數據存放地址,        虛擬機參數配置等。默認將數據放在sonatype-work/nexus3

3)/nexus-3.17.0-01/bin/nexus的信息基本不用改

 

(3)安裝啓動

1)運行。進入bin目錄,運行./nexus.start,啓動服務

2)輸入ip:port進入系統,用戶名爲admin,初始密碼爲在

/sonatype-work//nexus3/admin.password目錄下。輸入用戶名密碼後進入系統並修改密碼爲Abcd1234 。

3)設置開機自啓

  1. sudo ln -s /cpic/nexus/nexus-3.17.0/bin/nexus /etc/init.d/nexus
  2. 查看nexus服務狀態、啓動服務、停止服務等
service nexus status/start/stop
  1. 設置nexus服務開機自啓動或者開機不啓動
chkconfig nexus on/off

4)maven配置阿里雲中央鏡像

鏡像是對repository而言,必須先存在repository,之後配置對應關係。
如果配置mirror ,則找mirror ,不再找對應的repository。所以mirror >= repository

 

找到mirrors標籤,添加

<mirror>
     <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
</mirror>

5)nexus私服構成介紹

登錄後找到Repositories,打開,如下圖

  1. component name的一些說明: 
    1
    maven-centralmaven中央庫,默認從https://repo1.maven.org/maven2/ 拉取jar 可以改爲阿里雲http://maven.aliyun.com/nexus/content/groups/public/ 
  2. 2maven-releases:私庫發行版jar 
    3
    maven-snapshots:私庫快照(調試版本)jar 
    4
    maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地maven基礎配置settings.xml中使用。
  3. Nexus默認的倉庫類型有以下四種:
    1group(倉庫組類型):又叫組倉庫,用於方便開發人員自己設定的倉庫。可包含hostedproxy兩種庫,下載時按配置順序從中依次查找
    2hosted(宿主類型):內部項目的發佈倉庫(內部開發人員,發佈上去存放的倉庫)。一般部署我們自己項目打包的jar,供內部人員下載
    3proxy(代理類型):從遠程中央倉庫中尋找數據的倉庫(可以點擊對應的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠程倉庫的路徑);
    4virtual(虛擬類型):虛擬倉庫(這個基本用不到,重點關注上面三個倉庫的使用);
  4. Policy(策略):表示該倉庫爲發佈(Release)版本倉庫還是快照(Snapshot)版本倉庫;
  5. Public Repositories下的倉庫 
    1
    3rd party: 無法從公共倉庫獲得的第三方發佈版本的構件倉庫,即第三方依賴的倉庫,這個數據通常是由內部人員自行下載之後發佈上去;
    2Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫 
    3
    Central: 用來代理maven中央倉庫中發佈版本構件的倉庫 
    4
    Central M1 shadow: 用於提供中央倉庫中M1格式的發佈版本的構件鏡像倉庫 
    5
    Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫 
    6
    Releases: 內部的模塊中release模塊的發佈倉庫,用來部署管理內部的發佈版本構件的宿主類型倉庫;release是發佈版本;
    7Snapshots:發佈內部的SNAPSHOT模塊的倉庫,用來部署管理內部的快照版本構件的宿主類型倉庫;snapshots是快照版本,也就是不穩定版本

6)功能測試

使用upload功能上傳第三方文件到私庫

7)配置本地maven連接私庫

a.本地maven庫配置settings.xml,添加mirror即可從過私服下載

1、在mirrors添加mirror。可以添加多個mirror。這裏只添加私庫

<mirrors>

    <mirror>

      <id>nexus</id>

      <mirrorOf>*</mirrorOf>

      <url>http://10.71.0.138:8082/repository/maven-public/</url>

    </mirror>

  </mirrors>

 

2、在profiles添加profile

<profiles>

   <profile>

      <id>nexus</id>

      <repositories>

        <repository>

          <id>central</id>

          <url>http://central</url>

          <releases><enabled>true</enabled></releases>

          <snapshots><enabled>true</enabled></snapshots>

        </repository>

      </repositories>

     <pluginRepositories>

        <pluginRepository>

          <id>central</id>

          <url>http://central</url>

          <releases><enabled>true</enabled></releases>

          <snapshots><enabled>true</enabled></snapshots>

        </pluginRepository>

      </pluginRepositories>

    </profile>

  </profiles>

 

3、在avtinveProfiles添加activeProfile表示激活nexus

<activeProfiles>

    <activeProfile>nexus</activeProfile>

</activeProfiles>

 

配置2和3的目的是爲了可以下載releases庫和snapshots庫的jar包。

 

b.打包jar並傳到私庫

1、在servers添加server

  <servers>

    <server>

      <id>nexus-releases</id>

      <username>admin</username>

      <password>Abcd1234</password>

</server>

    <server>

       <id>nexus-snapshots</id>     

      <username>admin</username>

      <password>Abcd1234</password>

    </server>

  </servers>

 

2、在項目的pom文件添加如下代碼,會將正式版發佈到releases倉庫,測試版發佈到snapshots倉庫。直接deploy即可發佈到私服。注意:nexus-releases和nexus-snapshots爲maven配置文件中配置的參數

<distributionManagement>
   <repository>
      <id>nexus-releases</id>
      <name>Nexus Releases Repository</name>
      <url>http://10.71.0.138:8082/repository/maven-releases/</url>
   </repository>
   <snapshotRepository>
      <id>nexus-snapshots</id>
      <name>Nexus Snapshots Repository</name>
      <url>http://10.71.0.138:8082/repository/maven-snapshots/</url>
   </snapshotRepository>
</distributionManagement>

 

踩坑點:

1、在Anonymous沒勾選,表示不允許匿名訪問,導致一直下載不了。

2、本地maven用的是3.3.1,不知道是不是緩存問題,一直下載不了,經歷了更新maven版本和重啓電腦後解決問題。就記一下吧,如果有類似問題的朋友可以嘗試下。

 

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