1. 程式人生 > >06.Maven 之 Nexus 使用

06.Maven 之 Nexus 使用

1. Nexus 安裝

1.1 前提條件
  • jre 環境
1.2 上傳 nexus-2.11.2-03-bundle.tar.gz 檔案後解壓
    tar -zxvf nexus-2.11.2-03-bundle.tar.gz
1.3 編輯 bin/nexus 指令碼,配置 RUN_AS_USER 引數
    RUN_AS_USER=root
1.4 啟動 nexus
    ./nexus start
1.5 訪問

2. Nexus 簡介

Nexus

  • 3rd party: 無法從公共倉庫獲得的第三方釋出版本的構件倉庫

  • Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫

  • Central: 用來代理maven中央倉庫中釋出版本構件的倉庫

  • Central M1 shadow: 用於提供中央倉庫中M1格式的釋出版本的構件映象倉庫

  • Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫

  • Releases: 用來部署管理內部的釋出版本構件的宿主型別倉庫

  • Snapshots: 用來部署管理內部的快照版本構件的宿主型別倉庫

3. 上傳 jar 包到私服

3.1 專案配置
    <!-- 釋出到私服 -->
    <distributionManagement>
        <repository>
            <id>user-release</id>
            <name>User Project Release</name>
            <url>http://192.168.188.100:8081/nexus/content/repositories/releases/</
url
>
</repository> <snapshotRepository> <id>user-snapshots</id> <name>User Project SNAPSHOTS</name> <url>http://192.168.188.100:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
3.2 全域性環境配置
  • 必須要配置 mvn 釋出的許可權,否則會報 401 錯誤,在 settings.xml 中配置許可權,其中 id 要與 pom 檔案中的 id 一致
    <servers>
        
        <!-- 私服地址的使用者名稱/密碼 -->
        <server>
            <id>user-release</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>user-snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        
    </servers>
3.3 釋出
    mvn deploy

4. 從私服下載 jar 包

4.1 單個專案
  • 在 maven 專案中的 pom.xml 檔案中指定私服地址
    <!-- 使用私服倉庫 -->
    <repositories>
        <repository>
            <id>nexus</id>
            <name>nexus</name>
            <url>http://192.168.188.100:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <!-- 使用私服外掛 -->
    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>nexus</name>
            <url>http://192.168.188.100:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
4.2 全域性環境
  • 在 maven_home/conf/settings.xml 檔案中加入如下配置
    <profiles>
    
        <!-- maven 私服地址 -->
        <profile>
            <id>nexusProfile</id>
            <repositories>
                <repository>
                    <id>nexus</id>
                    <name>nexus</name>
                    <url>http://192.168.188.100:8081/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
        
    </profiles>
    
    <!-- 啟用 -->
    <activeProfiles>
    
    	<activeProfile>nexusProfile</activeProfile>
    	
    </activeProfiles>