【开发日记】Docker搭建Maven私服

文章目录

前言

Maven私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远程仓库(中央仓库、其他远程公共仓库)。

在公司的局域网内,程序员可以将自己开发的项目打成jar并发布到私服,其它项目组成员就可以从私服下载所依赖的jar。私服还充当一个代理服务器的角色,当私服上没有jar包时会从Maven中央仓库自动下载。

1、拉取镜像

复制代码
docker pull docker.io/sonatype/nexus3

2、创建本地目录

根据自己需求来创建本地目录,后续需要将此目录挂载到nexus镜像中。

复制代码
sudo mkdir -p /volume1/docker/nexus3/nexus-data

修改权限,如果不给权限的话会导致nexus启动失败,所以请务必给足权限。

复制代码
sudo chmod 777 /volume1/docker/nexus3/nexus-data

3、启动容器

复制代码
docker run -p 8081:8081 --name nexus -v /volume1/docker/nexus3/nexus-data:/nexus-data  docker.io/sonatype/nexus3

命令解释:

-p:表示映射端口,如果想要修改映射到宿主机上的端口,可修改前面的8081。

--name:表示指定容器的名称。

-v:表示挂载宿主机目录到容器目录。

4、访问

运行容器后需要等待很久的,我使用的是NAS搭建,可能是配置太低导致,等待容器完全启动后访问IP地址:端口/nexus可进入nexus界面。

点击下图中的Sign in会弹出登录窗口,账号为admin,密码需要前往刚刚创建的挂载目录/nexus-data/admin.password文件中查看,根据自己的挂载目录查看。

登录成功后会提示修改密码,修改密码后该路径的文件会自动删除。

5、上传依赖

nexus启动成功后会存在几个默认的仓库,一般来说这些就够用了,所以这里就不展示创建新的仓库了。

如果不进行登录,界面中不会有上传入口按钮,需要先进行登录管理员账号admin进行后续操作。

这里展示上传依赖到默认仓库。

点击Browse选择依赖文件,点击Add another asset可追加文件,建议上传jar和pom两个文件。

上传pom文件的两个原因:

① 不上传pom文件会导致依赖关联的其他依赖无法自动导入,比如你项目中只添加了A依赖,而A依赖又添加了B依赖,如果不上传pom文件系统则不会加载B依赖。

② 不上传pom文件的话需要手动输入GroupID、ArtifactID、Version内容。

6、项目配置私服

在项目``pom.xml`中添加如下配置:

xml 复制代码
<repositories>
    <repository>
        <id>nexus</id>
        <name>Nexus Repository</name>
        <url>http://IP地址:端口/nexus/repository/maven-releases/</url>
    </repository>
</repositories>
相关推荐
岁月宁静4 分钟前
一个 AI 项目从本地到上线,要经过哪些步骤?全流程讲清楚
python·docker·agent
正经教主5 小时前
【FDE系列】阶段2:Day 42(UP详细版):Dockerfile 实战 — 把你的应用打包成镜像
人工智能·docker·fde
刘马想放假5 小时前
Copyparty 轻量文件共享:Docker Compose 部署、权限与多协议使用全指南
docker·容器
岁寒良木8 小时前
麒麟 V10 (x86_64) 离线/联网部署 Docker 26.1.4 与 MaxKB v2.10 LTS 实战指南
python·docker·kylin
peach10 小时前
同样是装依赖,为什么 npm 长成 node_modules,Maven 长成 .m2
npm·node.js·maven
屈冠成11 小时前
ShopXO商城系统测试报告
开发语言·spring·maven·lua
正经教主12 小时前
【FDE系列】阶段2:Day 43(UP详细版):Docker Compose — 多容器一键编排
运维·docker·容器
csdn_aspnet12 小时前
构建、运行与管理容器的 18 个常用 Docker 命令
docker·容器·eureka·command
木雷坞12 小时前
AnythingLLM Docker部署:中文资料上传后无引用的检查路径
运维·docker·容器
maochongsandai11013 小时前
Centos上运行docker应用命令汇总
linux·docker·centos