- 背景
我们现在要搞一个私服maven来管理对应的依赖包,需要上传包。用nexus只能单个文件搞,批量导入不行,而且还要单独配置groupID什么的。不多BB,上教程
- 建脚本
vi 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 './mavenUpload\.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}/{} ;
- 启动脚本
注意
改成你自己的的,其中maven推送的地址在这里找
**#将此脚本复制并运行到包含文件的存储库目录的根目录
#此脚本试图明确排除上载本身,因此脚本名称很重要
**
也就是说,你要上传哪些文件,你把你文件放在对应的目录下,比如你要上传com这个文件夹,你就放在对应的目录
# 脚本授权
chmod +x mavenimport.sh
# 执行脚本
./mavenimport.sh -u admin -p admin123 -r http://地址/repository/repository/
自己遇到的异常
如果遇到
-bash: ./mavenimport.sh: /bin/bash^M: bad interpreter: No such file or directory
dos2unix mavenimport.sh
-bash: dos2unix: command not found
错误信息中的 ^M 表示回车符 (Carriage Return),这通常是由于 Windows 平台上的文本文件在 Unix/Linux 平台上执行时引起的。
可以使用 dos2unix 命令将脚本文件转换为 Unix/Linux 格式
dos2unix mavenimport.sh
如果系统中没有安装 dos2unix 命令,你可以尝试使用 sed 命令来移除回车符。
sed -i 's/\r//' mavenimport.sh
然后你应该能够正确运行脚本。
如果老鸟发现博文有问题,欢迎指点一二