目录
私服简介
私服的好处
使用docker搭建私服
添加阿里云私服代理
配置settings.xml
配置pom.xml文件
测试
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用。当Maven需要下载构件的时候,它从私服请求,如果 私服上不存在该构件,则从外部远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
a、节省自己的外网带宽
b、加速Maven构建
c、部署自己内部的第三方构件
d、提高稳定性,增强控制
e、降低中央仓库的负荷。
一 下载镜像
docker pull sonatype/nexus3
二 创建数据目录
mkdir -vp /opt/nexus/nexus-data && chown -R 200 /opt/nexus/nexus-data
三 启动容器
docker run -d -p 8081:8081 --name nexus --restart=always -v /opt/nexus/nexus-data:/nexus-data sonatype/nexus3
访问 http://ip:8081,可以看到如下页面,用户名admin,初始密码再容器 /nexus-data/admin.password 里面
可以使用docker exec -it nexus /bin/bash 进入容器,获取登录密码。
登录进去仓库管理页。我们可以看到maven2有三种仓库类型。
1 proxy。proxy代理中央仓库,它可以帮我们从远程仓库下载包到本地仓库(可额外添加阿里云maven私服作为代理)。
2 hosted。本地仓库,用来存储包。有测试版和正式版
3 group。自定义仓库组合,可以组合本地仓库,代理仓库。在配置文件中的镜像来源可以配置此仓库,这样就相对于配置了本地仓库和代理仓库了。
因为我们上传的包都是在hosted仓库,所以我们需要在hosted这两个仓库配置可以重新部署包的方式,这样重新打包就不会报400错误
如果直接从maven中央仓库拉取,由于网络原因,会显得非常慢,而且一些jar包中央仓库也可能不全,所以我们可以添加国内的maven私服作为代理。这里,我们使用阿里云maven私服添加额外的代理下载。
点击 Create repository 添加仓库
Remote storage 填写阿里云的私服仓库地址,其它配置项跟中央仓库配置一样。
配置完成后,我们还要把此仓库拉入仓库组中(group),这样就可以同时使用中央仓库和阿里云私服仓库了。
将url改成自己私服的地址,密码设置你改好的密码
xxxxProfile
jdk-1.8
D:\maven_repository
releases
admin
xxxx
snapshots
admin
xxxx
releases
*
Nexus private
http://nexus.xxxx.info/repository/maven-public/
zhaodaoProfile
UTF-8
${encoding}
${encoding}
nexus
private nexus
http://nexus.xxxx.info/repository/maven-public/
true
true
nexus
local private nexus
http://nexus.xxxx.info/repository/maven-public/
true
false
jdk-1.8
true
1.8
1.8
1.8
1.8
在项目的pom.xml文件中,配置如下
releases
releases Repository
http://nexus.xxxx.info/repository/maven-releases/
snapshots
http://nexus.xxxx.info/repository/maven-snapshots/
snapshots Repository
我们可以通过idea测试一下,是否可以打包成功。
通过idea自带的插件,依次点击 clean、deploy。就可把本地的包上传到我们的私服上去
可以看到,我们的包已经上传到私服了。