参考

使用Nexus搭建Maven私服教程(附:配置并使用私服教程) (hangge.com)

Maven私服搭建(Nexus Repository Manager 3) - 布禾 - 博客园 (cnblogs.com)

下载

下载地址:https://help.sonatype.com/repomanager3/download

注意:Nexus Repository Manager 3是一个Java服务器应用程序,安装需要 jdk1.8以上的版本

下载解压后,用命令行到解压目录的bin目录下运行 nexus.exe /run(Linux运行./nexus run),启动完成后会显示“Started Sonatype Nexus”

Docker 中下载、安装、启动

(1)首先执行如下命令下载 Nexus3 镜像:

1
docker pull sonatype/nexus3

(2)接着执行如下命令,创建宿主机挂载目录:

1
mkdir –vp /usr/local/nexus-data

(3)最后执行如下命令运行 Nexus3 容器即可:

1
docker run -d --name nexus3 -p 8081:8081 -v /usr/local/nexus-data:/var/nexus-data sonatype/nexus3

(4)同样不要忘记执行如下命令开放 8081 端口:

1
firewall-cmd --permanent --add-port=8081/tcpfirewall-cmd --reload

访问 Nexus 管理后台

  1. Nexus管理后台地址:http://localhost:8081/

  2. 点击右上角Sign in登录,查看密码文件,登录

  3. 修改密码「admin 123456」

  4. 设置-仓库 maven-release ,Deploy policy 改为 Allow redeploy

  5. 添加阿里代理仓库,maven-public 分组中添加代理仓库

    添加-maven2 proxy-name-url

  6. 设置-Security-Anonymous Access,勾选 Allow anonymous users to access the server。可以匿名访问仓库资源

    image-20211104190137312

说明

(1)默认仓库说明:

  • maven-centralmaven 中央库,默认从 https://repo1.maven.org/maven2/ 拉取 jar
  • maven-releases:私库发行版 jar,初次安装请将 Deployment policy 设置为 Allow redeploy
  • maven-snapshots:私库快照(调试版本)jar
  • maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地 maven 基础配置 settings.xml 或项目 pom.xml 中使用

(2)仓库类型说明:

  • group:这是一个仓库聚合的概念,用户仓库地址选择 Group 的地址,即可访问 Group 中配置的,用于方便开发人员自己设定的仓库。maven-public 就是一个 Group 类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x 默认为 ReleasesSnapshotsCentral,当然你也可以自己设置。
  • hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的 jar 文件
  • snapshots:本地项目的快照仓库
  • releases: 本地项目发布的正式版本
  • proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的 Configuration 页签下 Remote Storage 属性的值即被代理的远程仓库的路径),如可配置阿里云 maven 仓库
  • central:中央仓库

发布依赖

  1. 配置 maven setting.xml文件,添加如下

    注意setting.xml 文件是当前生效的配置文件,默认在 用户目录/.m2/setting.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     <server>
    <id>bjtcrj-releases</id>
    <username>admin</username>
    <password>123456</password>
    </server>
    <server>
    <id>bjtcrj-snapshots</id>
    <username>admin</username>
    <password>123456</password>
    </server>
  2. 项目 pom.xml

    id 与上面 server 中 id 对应

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <distributionManagement>
    <repository>
    <id>bjtcrj-releases</id>
    <name>bjtcrj-releases</name>
    <url>http://ip:8000/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
    <id>bjtcrj-snapshots</id>
    <name>bjtcrj-snapshots</name>
    <url>http://ip:8000/repository/maven-snapshots/</url>
    </snapshotRepository>
    </distributionManagement>
  3. mvn clean deploy

依赖配置

pom.xml

1
2
3
4
5
6
7
8
9
10
11
<repository>
<id>maven-public</id>
<name>maven-public</name>
<url>http://ip:8000/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>

注意,如果报错,执行命令如下:

1
mvn clean package -U