当前位置: 首页 > news >正文

基于自动化脚本批量上传依赖到nexus内网私服

前言

因为某些原因某些企业希望私服是不能连接外网的,所以需要某些开源依赖需要我们手动导入到nexus中,尽管nexus为我们提供了web页面。但是一个个手动导入显然是一个庞大的工程。

在这里插入图片描述

对此我们就不妨基于脚本的方式实现这一过程。

预期效果

笔者本地仓库有一个自定义的jar包,本次实验会通过脚本的方式将其上传到私服上。

在这里插入图片描述

然后我们其他的项目会通过私服将这个依赖引入,实现内网引入这个自定义依赖,如下图所示,将自定义通过脚本批量导入私服之后,我们可以直接导入。

在这里插入图片描述

操作步骤

创建自定义hosted仓库

因为笔者私服是nexus3所以基于脚本导入依赖时是需要自己手动创建hosted仓库的。

在这里插入图片描述

进入选择页面,我们选择maven-hosted,进行本地仓库配置。

在这里插入图片描述

配置我们的本地仓库,读者可以按照下图的注释自行配置。

在这里插入图片描述

在这里插入图片描述

完成配置后到最下方点击创建。

在这里插入图片描述

将本地依赖传到服务器上

以笔者为例,为了实验笔者将所有的com包都传到服务器上。

在这里插入图片描述

编写脚本

我们仓库目录中编写脚本,以笔者为例,笔者仓库目录为/tmp/nexus-repository/,所以笔者就在这个目录编写一个脚本

vim  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; docase $opt inr) REPO_URL="$OPTARG";;u) USERNAME="$OPTARG";;p) PASSWORD="$OPTARG";;esac
donefind . -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}/{} ;

完成后添加执行权限

chmod +x mavenimport.sh

执行脚本导入依赖

重点步骤来了,我们到脚本的目录执行脚本,命令模板如下

./mavenimport.sh -u nexus账户 -p nexus密码 -r 自定义hosted地址

以笔者为例,笔者的命令就是

./mavenimport.sh -u admin -p xxxxx -r http://ip:8081/repository/my-hosted/

查看是否导入成功

然后脚本就会不断输出内容,将com包的所有依赖导入到nexus私服中,待脚本执行结束后,我们到nexus管理页面查看一下依赖是否导入成功。

点击浏览,查看我们的自定义仓库。

在这里插入图片描述

可以看到我们的com包都成功导入了。

在这里插入图片描述

测试

我们本地将com包删除,然后引入自定义的com依赖看看。

在这里插入图片描述

到idea点击导入

在这里插入图片描述

可以看到类成功导入了,实验成功。

在这里插入图片描述

注意事项

为什么我脚本执行没有报错,但是依赖没有上传到nexus呢?

  1. 检查是否可以登录,如果不能登录请尝试重启,先确保可以登录,因为我们的脚本执行逻辑就是先登录再传依赖。
  2. 使用脚本导入依赖需要从根文件夹进行导入,例如我们要导入spring-boot-starter-actuator那么我们就必须将\org这个目录直接上传上去进行导入。

如下图,我们必须将整个IO上传到服务器上,然后使用脚本导入。

在这里插入图片描述

  1. 完成后需要将maven中对应文件夹下的.lastUpdated文件删除,之后即可正常导入了。

参考文献

将本地库批量导入到Nexus3.x上(Maven私服)

http://www.lryc.cn/news/259512.html

相关文章:

  • Linux中ps命令使用指南
  • PHP开发语言中,网页端常用的标签
  • Java 入门第四篇 集合
  • VBA技术资料MF93:将多个Excel表插入PowerPoint不同位置
  • STM32 MCU的易坑点收集
  • Vue3项目filter.js组件封装
  • Linux: pwd命令查看当前工作目录
  • 【深度学习】PHP操作mysql数据库总结
  • 【送书活动】探究AIGC、AGI、GPT和人工智能大模型
  • Apple Find My「查找」认证芯片找哪家,认准伦茨科技ST17H6x芯片
  • java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value
  • 自动机器学习是什么?概念及应用
  • el-date-picker限制选择7天内禁止内框选择
  • Navicat 技术指引 | 适用于 GaussDB 分布式的调试器
  • 人工智能导论习题集(3)
  • 2023一起益企广东省中小企业数字化赋能活动(深圳站)成功举办
  • MySQL之创建表
  • 选择大于努力-鸿蒙开发应用不适合当前企业的现状态(头部应用除外)推荐一套款平台框架可以写安卓iOS 鸿蒙为企业开源节流
  • 2023.12.12 关于 Java 反射详解
  • 【Qt QML入门】Image
  • Spark编程入门
  • JVM 内存分析工具 Memory Analyzer Tool(MAT)的深度讲解
  • 浅谈 USB Bulk 深入浅出 (3) - USB Bulk 装置传输的注意事项
  • c语言结构体调用格式与对齐
  • 服务器常用命令介绍和负载监控的工具插件推荐
  • linux 防火墙systemctl (个人笔记)
  • 处理器中store指令的处理
  • 杨辉三角形-第11届蓝桥杯选拔赛Python真题精选
  • 我们一起做过的SPA——Nuxt.js介绍
  • java导出word使用模版与自定义联合出击解决复杂表格!