在Nexus的"Server administration and configuration"中新建一个用于存放JAR包的仓库。
首先创建一个名为mavenimport.sh
的bash脚本,并编辑其内容如下:
#!/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}{} ;
注释
#!/bin/bash
# 将此脚本复制并运行在包含待上传文件的仓库目录下
# 脚本会排除上传自身以及其他特定文件
# 获取命令行参数
while getopts ":r:u:p:" opt; do
case $opt in
r) REPO_URL="$OPTARG" # 设置远程仓库URL
;;
u) USERNAME="$OPTARG" # 设置用户名
;;
p) PASSWORD="$OPTARG" # 设置密码
;;
esac
done
# 查找当前目录及其子目录下的所有普通文件,但不包括脚本本身和其他Maven元数据文件
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|^\./||" |
# 使用curl命令将找到的文件逐个上传到Nexus仓库
xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}{} ;
赋予脚本执行权限:
chmod +x mavenimport.sh
最后,执行脚本并将账号、密码和远程仓库地址作为参数传入:
./mavenimport.sh -u admin -p password -r http://xx.xx.xx.xx:8081/repository/local/
-u
参数后跟的是 Nexus 的登录账号-p
参数后跟的是登录密码-r
参数后跟的是远程仓库的URL地址通过这种方法,您可以方便地将整个目录下的JAR包批量上传到指定的Nexus仓库中。