利⽤Docker搭建Nexus私有仓库实现Maven私服
⽬录
⼀、前⾔
maven打包本地jar包⼆、Nexus搭建
三、配置仓库
3.1 配置加速库
3.2 创建私有仓库
四、配置权限
五、上传Jar包
六、使⽤Jar包
⼀、前⾔
相信国内的⼩伙伴都经历过,Gradle、Maven、NPM下拉速度过慢的情况。我们⼀般的做法是配置阿⾥云这样的中央仓库。加速问题是可以采⽤这种⽅式解决,但如果是团队内部的库想进⾏上传分发,传到Maven Central这种共⽤的Maven仓库就不太合适了。那样保密性和时效性都将收到破坏。所以在团队内部,我们⼀般都会搭建局域⽹内私有的中央仓库。⽀撑这种私有仓库的软件就是Nexus,本⽂将详细介绍如何从零搭建、上传库、下拉库整个使⽤过程。
⼆、Nexus搭建
现如今万物皆可Docker,我们没必要破坏本机系统原⽣安装了。直接新建⼀个l⽂件,写⼊如下内容:
version: '3.1'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus
ports:
- 6005:8081
volumes:
- /data/Docker/nexus/data:/nexus-data
注意最后⼀⾏volumens映射的位置,如需备份还原,只需要将这个⽂件夹打包恢复即可。
写好后,运⾏docker-compose up -d运⾏即可。然后访问服务器的6005端⼝,看到这个界⾯就算搭建成功了。
三、配置仓库
搭建好后,会有⼀些默认的仓库:
概念说明:
group:这是⼀个仓库聚合的概念,⽤户仓库地址选择 Group 的地址,即可访问 Group中配置的,⽤于⽅便开发⼈员⾃⼰设定的仓库。maven-public 就是⼀个 Group 类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x 默认为Releases、Snapshots、Central,当然你也可以⾃⼰设置。
hosted:私有仓库,内部项⽬的发布仓库,专门⽤来存储我们⾃⼰⽣成的 jar ⽂件 snapshots:本地项⽬的快照仓库
releases:本地项⽬发布的正式版本
proxy:代理类型,从远程中央仓库中寻数据的仓库(可以点击对应的仓库的Configuration 页签下 Remote Storage 属性的值即被代理的远程仓库的路径),如可配置阿⾥云 maven 仓库central:中央仓库
3.1 配置加速库
我们通过上⽂了解到,Nexus默认会从拉取我们需要的公共库。我们需要配置⼀个阿⾥云的加速库,这样凡是需要公共库的都会优先从阿⾥云加速下载。在设置中,点击创建仓库。
可以看到,我们可以创建多种仓库,Docker、Maven、NPM、Yum都可以。本⽂就以Maven为例了,其他仓库都类似。
Nexus会⾃带缓存功能,只有第⼀次需要下载。后续将直接从局域⽹的Nexus下载,⼤⼤加快了下载速度。(⾮常适合没有外⽹开发的团队)
3.2 创建私有仓库
配置好Maven的基础加速库后,我们就来创建⼀个团队内部使⽤的Maven仓库。我们继续点击创建仓库,这⾥选择maven2(hosted)。
Version policy下⾯有Release(正式版)、Snapshots(测试版)、Mixed(混合)三个选项,其实和我们平时引⽤第三⽅的库是⼀样的,只是我们⼀般会引⽤第三⽅库的正式版。Deployment policy这⾥我选择了Allow redeploy可以覆盖上传,你可以根据⾃⾝情况调整下⾯这些参数。
创建好后就可以直接使⽤了。但在此之前,我们最好配置⼀下开发账号,因为上传库的时候需要有账号密码。如果直接把系统管理员的账号给开发者会⽐较危险,毕竟现在删库跑路的很多。
四、配置权限
在设置页⾯的Roles⾥先创建⼀个⾓⾊:
然后只给这个开发这个⾓⾊,固定仓库的浏览和编辑权限。
最后创建⽤户,然后将该⽤户名、密码和该仓库的地址给到开发者就可以了。
仓库地址可以点击列表中Copy得到:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论