这里只是记录一下服务端的搭建及配置过程,客户端需要单独配置 maven 的 setting.xml 文件:Maven - 客户端 Nexus 配置
Nexus 是一个强大的 Maven 私服仓库。现在已经不仅仅是 Maven 私服了,同时支持 docker、apt、bower、conda、go、helm、npm、pypi、yum 等依赖管理
version: "3.9"
services:
nexus:
image: sonatype/nexus3:latest
container_name: nexus
restart: always
volumes:
# 自定义数据卷位置为当前目录下的 data 目录
- ./data:/nexus-data
ports:
- "8081:8081"
注意: 启动时如果出现权限问题,可以使用
chmod 777 /usr/local/docker/nexus/data
赋予数据卷可读写权限
由于我们国内一般使用阿里云代理仓库,而且开发一般都会使用到 spring
框架,所以我们需要配置三个代理仓库:aliyun-nexus
、spring-milestone
、spring-snapshot
,配置过程如下:
在选择仓库页面选择:maven2(proxy)
aliyun-nexux
Release
http://maven.aliyun.com/nexus/content/groups/public
spring-milestone
Release
https://repo.spring.io/milestone
spring-snapshot
Snapshot
https://repo.spring.io/snapshot
通过配置 maven-public 分组仓库将上面几个代理仓库统一为一个仓库入口,同时调整顺序:
这里我们配置一个自动删除快照版本的定时任务:
配置任务详情:
非开源项目可能没办法从中央仓库拉取项目,这时我们可以手动上传。
建议把第三方 jar 包单独归类于一个仓库中,便于维护和管理(maven-3rd)。
1、创建仓库 maven-3rd
2、选择上传仓库 maven-3rd
3、选择 jar 包、并填写 GAV 等信息
4、上传完成即可在仓库 maven-3rd
中看到对应的 jar 信息