在企业中,通常会自己内部搭建一套公司内部的jar管理仓库,也就是通常说的maven私服,建立私服的好处是,可以在公司内部共享内部jar包,通常是一些通用模块。

一、Nexus 安装

1.1 下载镜像

  1. docker pull sonatype/nexus3

1.2 运行镜像


docker run -d -p 7788:8081 --name nexus --restart=always sonatype/nexus3

1.3 查看密码

docker exec -it 容器名/容器id /bin/bash

nexus-data/admin.password 文件中记录admin初始密码。通过cat命令可以查看 b43e6509-dd8b-45b2-887b-9f9d757aec26

1.4 开放端口

 firewall-cmd --zone=public --add-port=7788/tcp --permanent
 firewall-cmd --reload

1.5 测试

image.png

二、从私服拉取构建

2.1 单个项目配置

<repositories>
        <repository>
            <id>nexus_public</id>
            <url>http://192.168.139.128:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
 </repositories>

2.2 全局配置

<profiles>
    <profile>
        <id>nexusProfile</id>
        <repositories>
            <repository>
                <id>nexus</id>
                <url>http://192.168.139.128:8081/repository/maven-public/</url>
                <layout>defult</layout>
                    <releases>
                         <enabled>true</enabled>
                    </releases>
                    <snapshots>
                         <enabled>true</enabled>
                    </snapshots>
            </repository>
        </repositories>
    </profile>
</profiles>
<activeProfiles>
    <activeProfile>nexusProfile</activeProfile>
</activeProfiles>

三、部署构建到私服

把本地工程发布到私服,需要在当前工程的pom文件中配置 distributionManagement 节点。同时需要在setting.xml中配置认证信息

3.1 配置私服地址信息

<distributionManagement>
        <repository>
            <id>releases</id> <!-- 注意这里的名字必须和 认证信息中的id一致 -->
            <name>User Project Release</name>
            <url>http://192.168.139.128:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>  <!-- 注意这里的名字必须和 认证信息中的id一致 -->
            <name>User Project SNAPSHOTS</name>
            <url>http://192.168.139.128:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
</distributionManagement>

3.2 配置认证信息

<servers>
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>cqitjava666</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>cqitjava666</password>
    </server>
 </servers>

需要注意的是上下两处 id 信息需要一致。