Shell常用脚本:Nexus批量上传本地仓库脚本

x33g5p2x  于2022-07-26 转载在 其他  
字(1.7k)|赞(0)|评价(0)|浏览(769)

文章参考: https://blog.csdn.net/qq_35237533/article/details/125159799

mavenimport.sh == 必须!必须!必须!将此脚本放在待上传的本地仓库里面,只放到儿子层即可,不要放到孙子层

  1. #!/bin/bash
  2. # copy and run this script to the root of the repository directory containing files
  3. # this script attempts to exclude uploading itself explicitly so the script name is important
  4. # Get command line params
  5. while getopts ":r:u:p:" opt; do
  6. case $opt in
  7. r) REPO_URL="$OPTARG"
  8. ;;
  9. u) USERNAME="$OPTARG"
  10. ;;
  11. p) PASSWORD="$OPTARG"
  12. ;;
  13. esac
  14. done
  15. # 步骤1:优化原作者有些无啥必要的筛选,因为写的必不起作用,特别注意 -path并不是正则,很像mysql的like模糊查询,大量使用到的转义字符压根没啥软用,而且就算是正则语法他写的也是错的
  16. #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}/{} ;
  17. # 下行命令讲解
  18. # 步骤1:当前目录下找出所有是文件非目录类型的文件 - 且排除掉mavenimport.sh文件
  19. # 步骤2:将当前筛选出的文件绝对路径== 前面的 ./ 字符替换成空字符
  20. # 如 ./cn/hutool/hutool-all/5.8.4/hutool-all-5.8.4.jar ==> cn/hutool/hutool-all/5.8.4/hutool-all-5.8.4.jar
  21. # 如 ./cn/hutool/hutool-all/5.8.4/hutool-all-5.8.4.pom ==> cn/hutool/hutool-all/5.8.4/hutool-all-5.8.4.pom
  22. # 步骤3:开始一个一个的上传文件(筛选出有多少行文件绝对路径,则curl则执行多少遍)
  23. # curl -u "$USERNAME:$PASSWORD" -X PUT -v -T cn/hutool/hutool-all/5.8.4/hutool-all-5.8.4.jar ${REPO_URL}/cn/hutool/hutool-all/5.8.4/hutool-all-5.8.4.jar
  24. # curl -u "$USERNAME:$PASSWORD" -X PUT -v -T cn/hutool/hutool-all/5.8.4/hutool-all-5.8.4.pom ${REPO_URL}/cn/hutool/hutool-all/5.8.4/hutool-all-5.8.4.pom
  25. find . -type f -not -path '*mavenimport.sh*' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;

脚本使用

  1. sh mavenimport.sh -u admin -p admin123 -r http://192.168.19.107:8082/repository/lrc/

上传成功

相关文章