【转】将本地库批量导入到Nexus3.x上(Maven私服)
1,问题描述
(1)由于公司内网的 Nexus 私服仓库不能联网,不过本地仓库已经有很多的 maven 的 jar 包了,便想将其从本地仓库导入到 Nexus 私服中。
(2)Nexus2.x 批量导入本地库是十分容易的,只需将库文件夹复制到对应 nexus 库下面,去网页刷新一下索引就OK了。在 Nexus3.x 中,我们没法这么操作了,但是我们可以使用 shell 脚本,批量导入 Nexus3.x。
2,操作步骤
(1)首先访问 Nexus 页面,登录后点击“Create repository”按钮新建一个仓库。
(2)选择 maven2(hosted)
(3)按照自身需求填写如下选项(仓库名随意):
(4)在服务器 /home 目录下,新建一个文件夹 repo,批量放入我们需要的本地库文件夹:
(5)在 repo 文件夹下执行如下命令创建一个 shell 脚本:
(6)脚本内容如下:
#!/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}/{} ;
(7)保存退出后执行如下命令赋予其执行权限:
chmod +x mavenimport.sh
(8)执行如下命令即可将该目录下的 jar 包都导入到指定仓库中:
./mavenimport.sh -u admin -p 123 -r http://192.168.60.133:8081/repository/my_repo/
注意:命令中 Nexus 用户名、用户密码、仓库地址根据实际情况进行修改。
./mavenimport.sh -u admin -p 123 -r http:
(9)访问 Nexus 控制台页面,可以发现确实都上传成功了:
好学若饥,谦卑若愚
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?