maven本地仓库同步上传到nexus远程仓库
·
场景
因远程nexus仓库数据丢失,历史版本组件包全部丢失,一个个项目重新打包上传工作量巨大,切很多历史版本无法找到。因此可以通过上传本地仓库中的组件包进行补充。
操作
第一步:创建自己远程仓库(也可以使用现有的),需要使用管理登录

- 选择maven2(hosted)方式

- 创建仓库配置

- 查看仓库信息

- 复制仓库路径,上传时需要用

第二步:准备上传组件包
- 创建操作目录
sudo mkdir /opt/maven-repo
cd /opt/maven-repo
- 将需要上传的组件包拷贝到操作目录中
#创建根目录
sudo mkdir com
#拷贝本地仓库组件
sudo cp -r ~/.m2/repository/com/lizz ./com/lizz
- 上传脚本
vim 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}{} ;
- 执行上传脚本
# -u 用户名
# -p 密码
# -r 远程仓库路径
./mavenimport.sh -u admin -p admin123 -r http://nexus.lizz.com/repository/lizz_test
- 上传异常:修改许可模式

- 上传成功

- maven引用时注意是否引用到了新建的远程库,或者直接上传到在用的maven库中。
更多推荐


所有评论(0)