场景

        因远程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库中。

更多推荐