Docker安装Maven私服Nexus3的实现步骤

 更新时间:2025年12月14日 09:17:53   作者:栗筝i  
本文主要介绍了Docker安装Maven私服Nexus3的实现步骤,可以帮助开发者搭建高效的依赖管理和分发环境,具有一定的参考价值,感兴趣的可以了解一下

在现代软件开发中,私有仓库是企业管理和分发内部依赖的重要工具,能够提高开发效率、加强依赖管理并确保构建的稳定性。Nexus Repository Manager 作为市场上常见的私服解决方案,不仅支持 Maven,还支持 npm、PyPI 等多种格式,为团队提供了统一的制品管理平台。

本文将介绍如何使用 Docker 快速部署 Maven 私服 Nexus3,帮助开发者搭建高效的依赖管理和分发环境,同时减少环境配置的复杂性和维护成本。通过 Docker 部署,您可以轻松实现版本化控制、灵活配置以及跨平台的便捷使用,是中小型团队和企业的理想选择。

1、背景知识

在研发的过程中,很多企业都会针对自身业务特点来定制研发一些工具类库,但是这些工具类库又不会对外公开,那如何在组织内部共享这些类库呢?一种很好的方式就是在公司内部搭建一套 Maven 私服仓库。

搭建 Maven 私服仓库可以提高项目构建和部署的效率、稳定性和安全性,同时方便管理内部开发的组件和私有库,比较适用于企业内部或者特定场景下的需求。

2、环境搭建

2.1、步骤一:下载 Nexus3 镜像

在服务器命令行输入如下命令,下载 Nexus3 镜像(视网络情况,可能需要耐心等待一会儿):

$ docker pull sonatype/nexus3

2.2、步骤二:查看 Nexus3 镜像

在服务器命令行输入如下命令,查看下载的 Nexus3 镜像。

$ docker images

可以看到,已经成功下载 Nexus3 镜像

2.3、步骤三:创建 Nexus3 挂载文件夹

在服务器命令行输入如下命令,创建 Nexus 的挂载文件夹:

$ mkdir /usr/local/nexus-data && chown -R 200 /usr/local/nexus-data

2.4、步骤四:启动 Nexus3 容器

在服务器命令行输入如下命令,启动 Nexus3 容器:

$ docker run -d -p 8081:8081 --name nexus -v /usr/local/nexus-data:/nexus-data --restart=always sonatype/nexus3

可以看到,在上述启动命令中,我们将 Nexus3 容器的 /nexus-data 目录映射到了宿主机的 /usr/local/nexus-data 目录。此时 Nexus3 容器运行过程中,在 /nexus-data 目录产生的文件和日志都会在宿主机的 /usr/local/nexus-data 目录中查看到。

Ps:Nexus3 默认启动需要至少 2G 内存,所以一些环境下为了避免占用过多内,可以采用下面参数限制其内存:

$ docker run -d -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" -p 8081:8081 --name nexus -v /usr/local/nexus-data:/nexus-data sonatype/nexus3

2.5、步骤五:查看 Nexus3 容器启动状态

在服务器命令行输入如下命令,查看 Nexus3 容器启动状态:

$ docker ps

可以看到,Nexus3 容器启动成功,监听了 8081 端口。

3、环境配置

搭建完 Nexus3 环境后,我们还需要对其进行配置,具体配置的步骤如下所示。

3.1、步骤六:打开 Nexus3 页面

Nexus3 容器启动时监听的端口和宿主机端口都是 8081,所以,我们在浏览器地址栏输入 http://宿主机IP地址:8081 打开 Nexus3 页面:

3.2、步骤七:登陆 Nexus3 用户

点击 Nexus3 右上角的登录(Sign in),点击后会弹出如下图所示的提示框:

对于第一次登陆,初始密码的存放位置为 /nexus-data/admin.password,因为我们在启动 Nexus3 容器时,将 Nexus3 容器的 /nexus-data 目录映射到了宿主机的 /usr/local/nexus-data 目录,所以,我们在宿主机的 /usr/local/nexus-data 目录中也能够查询到 admin.password 文件。

$ cat /usr/local/nexus-data/admin.password 

此时,我们就查看到登录 Nexus3 的 admin 账号的密码为 13250a0a-1c02-498a-b15a-0a7aabad1add

将 admin 账号和对应的密码输入到提示框中,即可登录 Nexus3。

Ps:首次登录后会自动弹出完成必要设置的提示框,点击 Next 按钮,设自行置新密码,用于后续登录 Nexus。之后点击 Next 按钮,选择 Enable anonymous access 再次点击 Next 按钮后,点击 Finish 按钮,即可完成设置。

3.3、步骤八:配置阿里云代理仓库

如下图所示,Nexus 默认使用的远程仓库为 maven-central,从这个远程仓库下载依赖很慢,经常连不上。

鼠标单机 maven-central 仓库,查看 maven-central 仓库配置的远程链接,如下图所示:

可以看到,maven-central仓库配置的远程链接为 https://repo1.maven.org/maven2/,从这个远程仓库下载依赖很慢,经常连不上,所有我们需要配置阿里云远程代理仓库。

这里我们回到 Repositories 页面,点击 Create repository 按钮:

点击后进入选择仓库类型的页面,这里我们选择 maven2(proxy) 类型。

点击选则 maven2(proxy) 类型后,进入配置远程代理仓库的页面:

其中,每个配置项如下所示。

  • Name:aliyun-central
  • Version policy:Release
  • Layout policy:Strict
  • Remote storage:http://maven.aliyun.com/nexus/content/groups/public

接下来,拖动页面右侧的滚动条,滑到最下面,点击 Create repository 按钮

点击 Create repository 按钮后,就可以在 Repositories 列表中看到新配置的阿里云代理仓库了

并且 Status 显示的是 Online - Ready to connect,说明阿里云远程仓库配置成功。

3.4、步骤九:配置仓库组

接下来,需要将 aliyun-central 配置到仓库组,并且将 aliyun-central 排在 maven-central 上面。

Repositories 列表中,点击 maven-public

点击进入页面后,下拉页面右侧的滚动条,找到如图所示的配置

aliyun-central 移动到右侧,并排在最上面后,点击 Save 按钮保存配置。

3.5、步骤十:创建用户

接下来,创建一个用于上传 Jar 包到仓库的用户,具体步骤如下所示。

点击 Security 菜单下的 Users 菜单,再之后点击 Create local user 按钮

随后,按照下图所示设置用户的基本信息

这里,自行记录用户的密码,将 Status 设置为 Active 来启用账户,并设置账号的角色为 nx-admin,配置好之后,点击底部的 Create local user 按钮即可。

点击后在 Security 菜单下的 Users 菜单的用户列表中,可以查看到新创建的本地用户

至此,Nexus3 配置完毕。

4、配置本地 Maven 仓库

配置完 Nexus 后,接下来,还需要对本地的 Maven 仓库进行配置,主要就是对 Maven 的 settings.xml 文件进行配置

4.1、步骤十一:复制 settings 文件

复制 setting.xml 文件为 setting-lizhengi.xml 文件

4.2、步骤十二:配置 servers 节点

在 settings-lizhengi.xml 文件中,找到 servers 节点,在 servers 节点中,配置在步骤十中创建的用户

<server>
    <id>binghe</id>
    <username>lizhengi</username>
    <password>myPassword</password>
</server>

4.3、步骤十三:配置 mirrors 节点

在 settings-lizhengi.xml 文件中,找到 mirrors 节点,在 mirrors 节点中,配置仓库地址

<mirrors>
    <mirror>
        <id>lizhengi-nexus</id>
        <name>Lizhengi Nexus3</name>
        <url>http://tencentcloud:8081/repository/maven-public</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

4.4、步骤十四:配置profiles节点

在 settings-lizhengi.xml 文件中,找到 profiles 节点,在 profiles 节点中,配置仓库信息:

<profile>
    <id>maven-public</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
    <repositories>
        <repository>
            <id>nexus-public</id>
            <url>http://tencentcloud:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
</profile>

至此,Maven私服仓库搭建完毕,并且本地Maven也已经配置完毕。

后续使用 Maven 构建项目时,指定使用 settings-lizhengi.xml 文件即可将依赖的 Jar 文件和生成的 Jar 文件上传到 Maven 私服仓库,如果使用 IDEA 编译项目,也需要在 IDEA 中,将 Maven 的配置文件指定为 settings-lizhengi.xml。

5、配置项目 pom.xml 文件

搭建完 Maven 私服仓库,配置好本地 Maven 仓库后,还需要在项目的 pom.xml 文件中进行相应的配置,具体如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
        </plugin>
        <!--发布代码Jar插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.8.2</version>
        </plugin>
        <!--发布源码插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <phase>install</phase>
                    <goals>
                        <goal>jar-no-fork</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
 
<distributionManagement>
    <repository>
        <!--这里的id与settings.xml中的servers节点配置的用户ID一直,这样才能使用配置的用户去上传到maven私有仓库 -->
        <!--此仓库对应的为RELEASE版本的jar-->
        <id>lizhengi</id>
        <url>http://tencentcloud:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <!--这里的id与settings.xml中的servers节点配置的用户ID一直,这样才能使用配置的用户去上传到maven私有仓库 -->
        <!--此仓库对应的为SNAPSHOT版本的jar-->
        <id>lizhengi</id>
        <url>http://tencentcloud:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

到此这篇关于Docker安装Maven私服Nexus3的实现步骤的文章就介绍到这了,更多相关Docker安装Maven私服Nexus3内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • windows10下安装docker且使用wsl2安装双系统并构建最小jre镜像和应用镜像

    windows10下安装docker且使用wsl2安装双系统并构建最小jre镜像和应用镜像

    这篇文章主要给大家介绍了windows10下安装docker且使用wsl2安装双系统并构建最小jre镜像和应用镜像的流程步骤,文中有详细的图文介绍,需要的朋友可以参考下
    2023-08-08
  • Docker进入容器运行命令的详细指南

    Docker进入容器运行命令的详细指南

    Docker 是一个开源的容器化平台,广泛应用于开发和生产环境中,它允许开发者打包应用程序及其依赖项到容器中,本文将详细介绍如何通过 Docker 进入容器内部运行命令,探讨不同的场景和工具,并提供相关代码示例,需要的朋友可以参考下
    2024-11-11
  • 使用docker部署django技术栈项目的方法步骤

    使用docker部署django技术栈项目的方法步骤

    这篇文章主要介绍了使用docker部署django技术栈项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Docker 配置固定IP及桥接的实现方法

    Docker 配置固定IP及桥接的实现方法

    这篇文章主要介绍了Docker 配置固定IP和桥接的实现方法的相关资料,这里详细介绍了Docker 的四种网络模式及如何实现桥接的案例,需要的朋友可以参考下
    2016-10-10
  • docker安装OpenWebUI报错500的原因及解决方法

    docker安装OpenWebUI报错500的原因及解决方法

    Open WebUI是一个可扩展、功能丰富且用户友好的自托管WebUI,旨在完全离线操作,这篇文章主要介绍了docker安装OpenWebUI报错500的原因及解决方法,需要的朋友可以参考下
    2025-07-07
  • Docker安装Jenkins-2.249.3-1.1的详细过程

    Docker安装Jenkins-2.249.3-1.1的详细过程

    这篇文章主要介绍了Docker安装Jenkins-2.249.3-1.1,通过编写docke安装脚本来实现安装目的,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • docker打包前端镜像的超详细步骤

    docker打包前端镜像的超详细步骤

    要打包前端项目可以使用 Docker 容器技术,下面这篇文章主要给大家介绍了关于docker打包前端镜像的超详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • dockerfile报错“/bin/sh -c yum -y install“问题及解决

    dockerfile报错“/bin/sh -c yum -y install“问

    文章主要讨论了解决Docker容器安装vim时出现错误的问题,指出是容器版本不兼容导致,建议使用Centos 7版本的容器,提供了一种解决方案,并鼓励读者参考此经验
    2026-05-05
  • Docker之自定义网络实现

    Docker之自定义网络实现

    大家好,本篇文章主要讲的是Docker之自定义网络实现,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • docker 查看jvm内存占用方式

    docker 查看jvm内存占用方式

    这篇文章主要介绍了docker 查看jvm内存占用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03

最新评论