Docker之Nexus搭建Maven倉庫


 Maven公服 http://maven.aliyun.com 

1. https://hub.docker.com 搜索nexus

2. docker pull sonatype/nexus3

3. 創建Docker目錄,創建nexus目錄

    cd /usr/local/
    mkdir docker 
    cd docker/
    mkdir nexus
    cd nexus/
    vi docker-compose.yml

4. 使用Docker來安裝和運行Nexus,docker-compose.yml配置如下:

    version:'3.1'
    services:
        nexus:
            restart:always
            image:sonatype/nexus3
            container_name:nexus
            ports:
                -8081:8081
            volumes:
                - /usr/local/docker/nexus/data:/nexus-data
   

5. docker-compose up -d

6. 訪問http://ip:8081

7. 看日志

    docker ps 
    docker logs containerID

8. 如果報錯沒權限 查看data中是否有數據,讓data有所有權限

    cd /data/
    ll
    docker-compose down
    chmod 777 data/

9. docker-compose -up -d


10. 啟動nexus耗內存,看內存狀態,nexus的啟動需要耗費近1G內存;

    free -h
    htop

11. 登陸nexus,默認用戶名`admin`密碼`admin123`

12. 在Maven setting.xml中添加Nexus認證信息(servers節點下)

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

13. 把項目和私服關聯起來,在pom.xml添加配置

<distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>Nexus Release Repository</name>
            <url>http://192.168.0.148:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <repository>
                <id>nexus-snapshots</id>
                <name>Nexus Snapshot Repository</name>
                <url>http://192.168.0.148:8081/repository/maven-snapshots/</url>
            </repository>
        </snapshotRepository>
    </distributionManagement>

 

注:ID與setting.xml中Servers配置的一致
url地址與私服倉庫地址一致


14. mvn deploy -Dmaven.test.skip=true

15. 項目需要依賴先去本地找,本地沒有去私服(內網)找,私服沒有去官服找;
第三方依賴或者自己寫的jar,可以手動上傳到私服,3.13版本nexus支持上傳功能

16. 配置代理倉庫,目的是使項目走私服下載依賴到本地倉庫
 

   <repositories>
        <repository>
            <id>nexus</id>
            <name>Nexus Repository</name>
            <url>http://192.168.0.148:8081/repository/maven-public/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    <repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>Nexus Repository</name>
            <url>http://192.168.0.148:8081/repository/maven-public/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

 

17. 到這里項目就可以從私服到本地倉庫了

1、SNAPSHOT版本代表不穩定(快照版本),還在處於開發階段,隨時都會有變化。當上傳同樣的版本號jar包的時候,SNAPSHOT會在版本號的后面自動追加一串新的數字,即日志標簽;

2、RELEASE則代表穩定的版本(發布版本),一般上線后都會改用RELEASE版本。

在maven的依賴管理機制中,唯一標識一個依賴項是由該依賴項的三個屬性構成的,分別是groupId、artifactId以及Version。這三個屬性唯一確定一個組件(即我們平時說的war包和jar包)。

3. 倉庫中public是集合了快照版和發行版的映射


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM