如何将Nexus2下第三方jar包迁移到Nexus3
问题描述
公司升级Nexus3后,需要将原来第三方jar包也同时迁移到新服务中,如果仅升级迁移连接形式的仓库可以通过创建update实现,这里不做展开
如何操作
-
在Nexus2服务器上找到jar包
a. 先找到服务器上,我们可以通点击第三方jar包仓库信息,查看Configuration
下的Defalut Local Storage Location
找到jar包仓库文件夹,可以先压缩并拷贝到工作,防止误操作导致数据问题
b. 拷贝出来的仓库文件夹会带有.index
,.meta
,.nexus
文件夹,可以删除
c. 删除后在仓库文件夹副本中创建shell脚本 -
创建shell脚本
vi mavenImport.sh
#!/bin/bash
# copy and run this script to the root of the repository directory containing files
# this script attempts to exclude uploading itself explicitly so the script name is important
# Get command line params
while getopts ":r:u:p:" opt; do
case $opt in
r) REPO_URL="$OPTARG"
;;
u) USERNAME="$OPTARG"
;;
p) PASSWORD="$OPTARG"
;;
esac
done
find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
脚本作用是将遍历当前文件夹的内容,使用
curl
指令上传到Nexus3
服务,所以需要用到Nexus3
的用户与密码
-
授权执行
chmod +x mavenImport.sh
-
执行命令上传jar到Nexu3
./mavenImport.sh -u {user} -p {password} -r http://{yourIp}:{yourPort}/{yourRepository}/
user和password分别为Nexus3
用户与密码
http://{yourIp}:{yourPort}/{yourRepository}/
为目标仓库链接,可以在仓库中查看
👉小小提示
- 建议可以先创建临时仓库,通过一两个jar包对脚本进行验证,成功后再大批量迁移
- 脚本是shell脚本,通常是需要在linux环境执行,如果window安装了git,可以通过git命令行窗口执行脚本
评论区