脚本方式本地仓库jar包批量导入maven私服

脚本内容,将以下内容保存为mavenimport.sh,放置于需要上传的根目录下,示例:C:\Users\63267.m2\repository
若私服已有待上传的包,则执行会被替换

#!/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}/{} ;

执行脚本:

./mavenimport.sh -u admin -p admin123456 -r http://192.168.1.88:8081/repository/maven-releases/

问题:
1.脚本要放在repository的根目录,其它目录会导致jar包路径有问题
在这里插入图片描述

2.解决“/bin/bash^M: bad interpreter: No such file or directory”报错

1、vim编辑脚本文件
2、进入vim编辑模式:set ff=unix,wq保存退出。
3、查看修改格式后的脚本文件格式。
4、执行脚本,不在报错,正常执行。

3.以上内容若在windows系统上执行需安装git.exe,右键点击Git bash here再执行脚本。注意这种方法不可行,有的jar包会漏传,不建议使用!
4.快照包和release包要分别上传,上传命令指定的仓库也要不同,另外快照包目录下偶尔也隐藏release包,要摘出来单独上传。

./mavenimport.sh -u admin -p admin123 -r http://10.100.240.41:8081/repository/maven-snapshots
./mavenimport.sh -u admin -p admin123 -r http://10.100.240.41:8081/repository/maven-releases
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值