1. 程式人生 > >Maven之Maven私服(三)

Maven之Maven私服(三)

目錄

一、私服搭建

在區域網內搭建的maven的遠端倉庫伺服器稱為私服。
這裡寫圖片描述
1. 下載nexus
Nexus是Maven倉庫管理器,可以搭建maven倉庫,同時提供倉庫管理功能,構件搜尋功能等。
下載連結:http://www.sonatype.org/nexus/archived/
2. 安裝nexus
下載後解壓,cmd管理員模式下進入bin目錄,執行命令:nexus.bat install
這裡寫圖片描述
3. 啟動nexus
方式1:cmd進入bin目錄,執行nexus.bat start
方式2:windows服務列表那裡啟動

檢視nexus的配置檔案conf/nexus.properties,如下圖:
這裡寫圖片描述

二、Nexus的倉庫型別

這裡寫圖片描述
Nexus的倉庫有4種類型:
1. hosted:
宿主倉庫,部署自己的jar到這個型別的倉庫,包括releases和snapshot,以及引用第三方的jar包。
2. proxy:
代理倉庫,用於代理遠端的公共倉庫,如maven中央倉庫,使用者連線私服,私服自動去中央倉庫下載jar包或者外掛。
3. group:
倉庫組,用來合併多個hosted/proxy倉庫,通常配置maven去連線倉庫組。
4. virtual:
相容Maven1版本的jar或者外掛。

Nexus倉庫預設在sonatype-work\nexus\storage目錄下:
這裡寫圖片描述


• apache-snapshots:代理倉庫,儲存snapshots構件,代理地址https://repository.apache.org/snapshots/
• central-m1:virtual型別倉庫,相容Maven1 版本的jar或者外掛
• releases:本地倉庫,儲存releases構件。
• snapshots:本地倉庫,儲存snapshots構件。
• thirdparty:第三方倉庫
• public:倉庫組

三、將專案打包釋出到私服

  1. 需求
    例子:假設多團隊分別開發dao、service、web,某個團隊開發完dao將dao釋出到私服供service團隊使用。
    這裡寫圖片描述
  2. 配置
    ①在客戶端(即進行部署dao工程的計算機)上配置maven環境,並修改setting.xml檔案,配置連線私服的使用者和密碼。
    <servers>標籤下加入:
    <server>
          <id>releases</id>
          <username>admin</username>
          <password>admin123</password>
    </server>
    <server>
          <id>snapshots</id>
          <username>admin</username>
          <password>admin123</password>
    </server>

注:
releases:釋出版本專案倉庫。
snapshorts:測試版本專案倉庫。
這裡寫圖片描述
②配置專案pom.xml
配置私服倉庫的地址,本公司的自己的jar包會上傳到私服的hosted倉庫,根據工程的版本號決定上傳到哪個hosted倉庫,如果版本為release則上傳到release倉庫,版本為snapshorts同理。
現在在dao模組的pom.xml檔案加入:

    <distributionManagement>
          <repository>
              <id>releases</id>
        <url>http://localhost:8081/nexus/content/repositories/releases/</url>
          </repository> 
          <snapshotRepository>
              <id>snapshots</id>
        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
          </snapshotRepository> 
    </distributionManagement>

注:
pom.xml這裡 和 settings.xml 配置 對應!
③釋出
將專案dao模組打成jar包釋出到私服。啟動Nexus(這裡還需要啟動mysql),對dao工程執行deploy命令。
可以看到如下圖:
這裡寫圖片描述
這裡寫圖片描述

四、從私服上下載Jar包

  1. 需求
    例子:從私服下載dao工程的jar包。

  2. 在settings.xml中配置倉庫
    <profies>標籤下加入:

    <profile>   
    <!--profile的id-->
       <id>dev</id>   
        <repositories>   
          <repository>  
            <!--倉庫id,repositories可以配置多個倉庫,保證id不重複-->
            <id>nexus</id>   
            <!--倉庫地址,即nexus倉庫組的地址-->
            <url>http://localhost: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://localhost:8081/nexus/content/groups/public/</url>  
            </pluginRepository>  
        </pluginRepositories>  
</profile>

使用profile定義倉庫需要啟用才能生效:

    <activeProfiles>
        <activeProfile>dev</activeProfile>
    </activeProfiles>

配置成功後可通過eclipse檢視Effective Pom中的repositories驗證是否配置成功:
這裡寫圖片描述