为什么需要Maven私有库?
使用Maven获取Java依赖包的时候, 默认是从Maven的中央库下载 jar文件, 中央库的地址是: https://repo.maven.apache.org/maven2 。 如果下载速度慢, 可以使用阿里的镜像, 地址如下:
https://maven.aliyun.com/repository/public
上面的场景都是在Internet网络畅通的状况下进行开发, 但是在很多企业内部的开发环境中, 出于安全性等考虑,在企业内部网络中的某些机器是禁止了外网访问的,这样的话, 不管是Maven默认库或是阿里镜像库都无法方法, 依赖项自然也就无法下载。
除了上面的场景外, 企业内部开发还有一种场景, 就是企业内部的应用使用https 协议, 颁发内部的https 根证书并应用在内部机器上,用来替换默认的https 证书机制, 这样有可能会出现的一个问题是Java 在使用证书访问https 站点时, 会将Maven的中央库认为是不安全的, 这个问题虽然可以解决,但是总归是不方便,相关的问题及解决方案可以参考:
Maven无法下载依赖之PKIX path building failed问题及解决
除此之外,从中央库或网络镜像获取依赖还存在有如下问题:
- 团队开发,每个人从中央库或是阿里云镜像仓库下载,浪费时间和网络资源。
- 自行开发的,又不能发布到中央库的包,维护起来很麻烦
- 某些有license的第三方包,在中央库没有(比如Oracle 的JDBC)
- 某些老旧或是特定的版本,中央库不存在
基于上面的这些原因, 如果在内部搭建一个Maven的私有库就可以解决这些问题。
使用什么搭建Maven私有库?
搭建Maven私有库的工具有多种, 推荐使用的就是Nexus。
Nexus 的站点地址是:
https://www.sonatype.com/thanks/repo-oss
到这个地址可以看到相关的下载和介绍。
Nexus 的下载
官方的下载页面如上图。目前的最新版本是nexus-3.55.0-01。 各操作系统对应的下载地址是:
- Unix : https://download.sonatype.com/nexus/3/nexus-3.55.0-01-unix.tar.gz
- Windows :https://download.sonatype.com/nexus/3/nexus-3.55.0-01-win64.zip
- Mac OS : https://download.sonatype.com/nexus/3/nexus-3.55.0-01-mac.tgz
注意: 官方地址下载很有可能不成功,可以到如下网盘下载:
链接:https://pan.baidu.com/s/1_51k9C_ORDPmueHoQ9Bsjw?pwd=00ru
提取码:00ru
Nexus 的启动
本篇基于Windows版本进行介绍。 下载后的文件是一个zip 的压缩档 nexus-3.55.0-01-win64.zip, 解压该文件后有两个目录:
nexus-3.55.0-01 包括nexus 本身相关的文件,比如 exe的启动文件, sonatype-work 则主要是运行相关的目录。
命令行切换到 nexus-3.55.0-01\bin 目录, 执行 nexus /run
出现如下页面,代表启动成功
启动完成之后, 在浏览器输入http://localhost:8081/:
Nexus的基本使用
查看本地的库
点击上方的立方体, 再点击左边导航栏的Browse 就可以看到包含的库, 如下图:
这里主要有 maven 和 nuget 两类, 这里仅看 maven 的。
- maven-center , 中央库的, 如果可以连接网络, 可以设置Maven官方库或是阿里镜像库的地址
- maven-public , 是一个组, 可以包含 maven-releases , maven-sanpshots 等
- maven-releases, 发布本地开发包的稳定版本
- maven-sanpshots , 发布本地开发包的快照版本, 也就是草稿版本
管理库
查看库可以不用登录, 但是管理库需要先登录, 点击右上角的Sign In 进行登录
使用admin 账号登录, 默认密码位于sonatype-work\nexus3\admin.password, 登录完成后会要求修改密码。
登录后的页面左边导航栏多出 Upload 菜单, 可以上传依赖包。 最上方多以一个齿轮按钮用于库的配置和管理。
点击配置按钮的页面如下: