本篇快速演示如何搭建和使用Nexus本地库, 关于Nexus 的基本使用参考:
Nexus搭建Maven私有库介绍
实战场景
本篇的实际场景是:
- 本地开发机器可以连接外部网络
- 测试或正式部署环境只能连接内网
- 项目使用了内部开发的组件库
在搭建搭建Maven私有库之前的处理方式是:
- 在本地开发机器下载依赖包和插件等
- 将本地库的目录复制到测试或部署环境
也即是说使用本地库的方式,但是这种方式存在使用不方便的问题:
在pom.xml 中新增一个依赖项, 需要将整个目录再复制一次, 因为这个依赖项会下载其他的依赖项, 要精准的知道这个依赖项及其相关的依赖项是比较麻烦的,所以就整个库目录进行复制。而一般状况, 本地库的目录内容比较多, 基本以G为单位, 所以复制起来一般也是几个小时。
Nexus 搭建规划
需要的机器如下:
- 机器A:开发机器,可以连接外网。这里存在Maven的本地库目录
- 机器B:部署机器,只能连内网
- 机器C:Nexus服务器,只能连内网
考虑Nexus 所在的机器无法连接外部网络, 规划如下:
- 自身开发的稳定版本库发布到 maven-releases
- 创建库 maven-local 用于批量导入机器A本地库中的依赖
- maven-public 配置包含 maven-releases 和 maven-local
Nexus 搭建步骤
1. 创建库 maven-local ,用于存放机器A本地库中的依赖
maven-local 的作用就是将原先本地库里下载的依赖导入到 nexus 中,创建库之前需要创建一个 Blob Store 用于存放文件。 创建步骤如下:
-
登录Nexus 服务器,点击 Create Blob Store
-
选择存放类型 Fil 之后, 输入 Blob Store的名字, 路径会根据名字自动产生。
注: 默认产生的存储路径位于 sonatype-work\nexus3\blobs 目录下。
- 创建完成之后就可以在存储的列表中看到这个 Blob Store 了
- 点击 “Create repository”
- 选择 maven2(hosted)
-
输入库的名字,选择Blob Store, 部署策略选择允许重新部署
-
输入完成, 点击"Create repository" 完成创建,创建后可以在库列表可以看到
2. 批量导入本地库的依赖
将机器A的本地库路径下所有的依赖导入机器C的Nexus 服务中。 步骤如下:
- 到 https://download.csdn.net/download/oscar999/87961368 下载批量导入maven本地库目录到Nexus私有服务器的脚本,下载的脚本名是 mvnimport.sh
- 将mvnimport.sh 复制到机器A的本地库根路径
3 Git Bash切换到本地库路径, 执行命令../mvnimport.sh -u admin -p yourpassword -r http://机器C:8081/repository/maven-local/
关于批量导入的更详细内容可以参考: Nexus如何导入jar以及批量导入Maven的本地库目录
自身开发的稳定版本库发布到 maven-releases
在机器A开发的自身的库,稳定版本发布到maven-releases , 开发过程中的版本发布到maven-snapshots。
关于如何发布自身开发的库, 可以参考: 如何在Maven中发布项目到Nexus私有服务器