Nexus3批量导入jar包
参考链接:
背景:
已经搭建Nexus3.6.0,需要迁移原有 两个 nexus2上的jar包 到nexus3统一管理。
分析:
- Nexus2.x 服务器直接存储jar包
- Nexus3.x 服务器存储的是二进制文件
- 所以不能通过 copy原Nexus2.x服务器上的 repositories目录 到nexus3.X,刷新index方式来迁移。
迁移导入方法:
官方Upgrading
具体实施可以参考上一篇blog。
这种方法有两个小问题:
- 需要原nexus版本为2.14.x版本
- 每个nexus2导入都会在nexus3上面都会创建一个仓库,不适合有多个nexus2统一迁移到一个nexus3mvn deploy命令上传
如果原nexus2待迁移的jar包并不多,可以使用这种方式。
1. 只上传jar,自动生成pom.xml (独立jar,pom不需要依赖其它)
mvn deploy:deploy-file -DgroupId=$groupId -DartifactId=$artifactId -Dversion=$version -Dpackaging=jar -DrepositoryId=nexus -Durl=http://$ip:8081/repository/$repository_name -Dfile=$path/XX.jar
2. 上传jar 和 pom.xml (pom里面有依赖)
mvn deploy:deploy-file -DgroupId=$groupId -DartifactId=$artifactId -Dversion=$version -DgeneratePom=false -Dpackaging=jar -DrepositoryId=nexus -Durl=http://$ip:8081/repository/$repository_name -DpomFile=$path/pom.xml -Dfile=$path/XX.jar
需要注意:
- 命令里面-DrepositoryId=nexus对应的是本机mvn settings.xml文件配置
- 写脚本封装上面命令实现批量迁移http协议上传
直接使用http put 文件到/repository/$repo-id/$path-of-file
curl -v -u admin:admin123 –upload-file pom.xml http://$ip:8081/repository/maven-releases/org/foo/1.0/foo-1.0.pom
我们需要上传的文件:jar和pom.xml创建 mavenimport.sh 脚本如下
1 | #!/bin/bash |
登陆到Nexus2.x服务器执行
cd $releases_dir
cp $path/mavenimport.sh .
sh mavenimport.sh -u admin -p admin123 -r http://$ip:8081/repository/$release_repository_name
cd $snapshots_dir
cp $path/mavenimport.sh .
sh mavenimport.sh -u admin -p admin123 -r http://$ip:8081/repository/$snapshots_repository_name
需要注意:
- 上面命令里面 -u admin -p admin123 请更换成nexus管理员帐户密码 (nexus默认管理员/密码 admin/admin123)
- 上面命令里面 $releases_dir 是指Nexus2.x服务器上存储releases仓库路径。
- 上面命令里面 $snapshots_dir 是指Nexus2.x服务器上存储snapshots仓库路径。
- 如果不切换到上面目录里面,那么上传的jar包 group_id会有问题。