Maven私服批量上传pom和jar实操

Maven私服上传pom和jar实操-CSDN博客

Maven私服上传jar实操_maven fakepath-CSDN博客

之前写过两篇向maven私服上传jar的操作,看到阅读量还可以,觉得应该有很多人有这个需求,所以这次再放一个大招,通过批量的方式向私服传jar和pom,这个是笔者在实际操作中实践的结果,用以提高生产效率,希望能对大家有所帮助。

场景描述:

背景如前面两篇介绍的一样,只是后续要上传的体量比较大,一个一个的传比较费时间,因此不得不另辟蹊径找个更稳妥的解决方案。贴出来笔者的环境如下,由于是内网开发,涉及到保密,因此以下环境仅作示意:

整体的开发环境如上图所示:所有开发工作都在内网进行,有个内网的仓库 maven仓库-02 会不定时的跟互联网公共仓库进行同步。其中云桌面为本地开发环境,可以直连maven仓库-02 ,一般情况下够用,由于历史原因还有一个 maven仓库-01 这个是自己搭建的仓库,一般本地开发也会连接这个maven仓库,一般发布的快照版本或者自己封装的公共代码一般也都提交到这个仓库。关键是maven仓库-01maven仓库-02在网络上是隔离的,而且短期这种情况不会改善,因此本地开发不得不连接这两个maven仓库,这个不是最麻烦的,麻烦的是我们的应用部署在测试开发环境,而测试开发环境只能连接maven仓库-01,因此运行的自动化打包编译的脚本或者类似jekins就只能连接maven仓库-01 ,这就导致了提交的代码经常发生因为缺少依赖在测试环境无法打包编译通过的烦恼

解决方案:

前面的文章也介绍过,虽然可以通过单个包上传解决缺包无法编译通过的麻烦,但是这个上传效率着实不敢恭维,有时候遇到了依赖大面积升级简直就是噩梦。

因此不得不倒逼想想其他一劳永逸的办法,最后经过实践终于摸索出了一套解决方案:由于本地仓库能同时连接maven-01 和maven-02 ,本地开发编译都没有问题,因此想办法将本地仓库的所有依赖同时上传到 maven-01 仓库就能解决了,秉持这个思路写个脚本批量上传就行了。

直接上脚本代码:

#!/bin/bash

##########################################
# author: caojiangtao 
# datet: 2023-08-17
# desc: upload local repository to nexus 
##########################################

if [ $# -ne 2 ] ; then
  echo "argv error: please input like mav-upload.sh /d/repository  /com/alibaba "
  exit 2
fi

## 接收两个参数: 第一个为本地仓库的根路径,第二个为需要上传的包的目录
root_resp=$1
target_resp=$2

## 进入本地仓库的根目录
cd  ${root_resp}

## 查找需要上传的文件
result=`find ${target_resp} -type f -not -path './mav-upload\.sh' -not -path '*/\*' -not -path '*/\^archetype\-catalog\.xml' -not -path '*/\^maven\-metadata\-local*\.xml'  -not -path '*/\^maven\-metadata\-deployment*\.xml' -not -path '*/\_remote.repositories' | sed "s|^\./||" `

## 开始上传
echo "start upload files ..."
for res in ${result}
do
    echo $res | xargs -I '{}' curl -u admin:admin123 -X PUT -v -T {} http://128.196.*.45:8081/nexus/content/respositories/opt/{}
done
echo "upload files successfully !!"

## 上传成功,退出
sleep 3
exit 0



上述脚本的脚本需要解决的问题就俩:

  • 上传哪些依赖

其中find命令的主要作用是正则匹配,过滤xml以及repositories等无关文件,这个可以根据需要变化,例如可以只上传7天内本地仓库新增的依赖等,主要是活用find命令。

  • 如何上传

上传通过的是curl命令,其中admin/admin123为远程仓库maven-02的登录用户名和密码,这个要根据实际情况填写,也可以当参数输入,另外 -T 后面跟的文件上传的目标地址也需要根据实际情况更改

这个脚本呢可以让我们的批量上传事半功倍,当然也提供了一种解决思路,后续大家也可以根据这个思路拓展更好用的脚本,而且不限定只使用shell。

温馨提示:如果是windows环境,这个脚本需要在Git Bash中执行,如果没有就自己想办法了!

实测效果:

由于涉及内外机密,实测效果就不跟大家展示了,目前这个方案对我来说比较实用高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/723846.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024最新版:C++用Vcpkg搭配VS2022安装matplotlib-cpp库

matplotlib-cpp是一个用于在C中使用matplotlib绘图库的头文件库。它提供了一个简单的接口,使得在C中创建和显示图形变得更加容易。这个库的灵感来自于Python的matplotlib库,它使得在C中进行数据可视化变得更加便捷。 matplotlib-cpp允许在C中使用类似Py…

【R语言】数据可视化分析和统计检验——线性和线性混合效应模型

R语言数据可视化分析和统计检验 写在前面1、数据读取及分析2、组间均值和标准差统计分析3、图像数据探索3.1 图像绘制(查看是否存在极端数据,以及数据分布情况)3. 2 数据标准化(Z-scores)3.3 绘制数据相关性 4、ggplot…

杭州电子科技大学2024年成人高等继续教育招生简章

杭州电子科技大学,作为一所享有盛誉的高等学府,始终致力于为社会培养优秀的人才。2024年,学校敞开大门,为广大有志于进一步提升自身学识与技能的成年人提供了难得的机会——成人高等教育招生。 此次招生不仅彰显了杭州电子科技大…

轻量级的数据交换格式JSON (JavaScript Object Notation)介绍

什么是JSON? JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它属于JavaScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 JSON具有易读性&…

FFmpeg+ZLMediaKit 超低延时推流

FFmpeg超低延时推流命令 ffmpeg -rtbufsize 4M -i rtsp://admin:abcd1234192.168.2.162:554/h264/ch1/main/av_stream \-c:v libx264 -preset ultrafast -tune zerolatency -x264-params keyint30:min-keyint30:scenecut0 -g 30 \-c:a aac -b:a 128k -ar 44100 -ac 2 -strict …

微型导轨的摩擦系数分析!

微型导轨的摩擦力主要包括滑动摩擦力和滚动摩擦力,摩擦系数是一个关键参数,它决定了滑块在导轨上运动时所受到的摩擦力大小,摩擦系数越低,系统的运动效率和精度就越高,而微型导轨的摩擦系数是受多个因素影响的。 微型导…

【PL理论】(33) 类型系统:推导树证明 φ ⊢ e∶t | 继续定义关系:γ ⊢ e∶t

💬 写在前面:本章我们将讲解推导树证明,推导树实际上就是推理规则的应用。只要学会如何选择并应用适当的推理规则,证明就不是难事了。 目录 0x00 推导树证明 𝝓 ⊢ 𝒆 ∶ 𝒕 0x01 继续定义关…

振动分析-5-基于CNN的机械故障诊断方法

参考基于CNN的机械故障诊断方法 CNN之图像识别 预训练模型迁移学习(Transfer Learning) 基于卷积神经网络(CNN)的深度迁移学习在声发射(AE)监测螺栓连接状况的应用 参考基于CNN的机械故障诊断所面临的困难和…

护眼指南:精选适合学生写作业的台灯推荐

当前,近视问题在人群中愈发普遍,据2024年的统计数据显示,我国儿童青少年的总体近视率已高达52.7%。在繁重的学业压力下,学生的视力健康日益受到关注,近视背后潜藏着诸多眼部并发症的风险,包括但不限于视网膜脱离、视网…

ATFX汇市:英国5月核心CPI年率下降0.4百分点,GBPUSD不跌反涨

ATFX汇市:据英国统计局数据,英国5月核心CPI年率为3.5%,低于前值3.9%;英国5月名义CPI年率为2%,低于前值2.3%。核心CPI年率和名义CPI年率相比前值分别下降0.4个百分点和0.3百分点,意味着英国的通胀率仍处于快…

Nidhogg:一款专为红队设计的多功能Rootkit

关于Nidhogg Nidhogg是一款专为红队设计的多功能Rootkit,该工具的主要目的是为红队研究人员提供一个多合一的切易于使用的多功能Rootkit,并允许研究人员通过单个头文件来将其引入到自己的C2框架之中。 当前版本的Nidhogg支持任意版本的x64 Windows 10和…

Monaco Editor系列(八)插入自定义DOM、删除指定位置的单词、给特定单词着色

前言:人都不知道自己是谁,所以想让自己成为什么样的人,就多给自己说什么样的话。我爱学习!学习使我快乐!回顾一下上一篇文章的内容。还记得 Monaco Editor 的三个命名空间吗?分别是 editor、languages、wor…

不是所有洗碗机都能空气除菌 友嘉灵晶空气除菌洗碗机评测

精致的三餐让你以为生活是“享受”,可饭后那些油腻的锅碗瓢盆却成了你我美好生活的最大障碍。想要只吃美食不洗碗,那一台优秀的洗碗机就必不可少了!今天,ZOL中关村在线要评测的就是这样一台不光洗得干净更能有效除菌抑菌的洗碗机—…

数据虚拟化、Data Fabric(数据编织)的兴起,对数据管理有何帮助?

数字化时代,虚拟化(Virtualization)并不是一个很陌生的词汇,它是现代数据中心资源管理的核心技术之一,是对 IT 资源(如服务器、存储设备、网络设备等)的抽象,通过屏蔽 IT 资源的物理…

2024年城市规划与创新管理国际会议(UPIM 2024)

2024年城市规划与创新管理国际会议(UPIM 2024) 2024 International Conference on Urban Planning and Innovation Management 【重要信息】 大会地点:苏州 大会官网:http://www.icupim.com 投稿邮箱:icupimsub-conf.c…

打击帮信罪掩隐罪的全渠道交易反欺诈解决方案

结合多年对抗黑灰产的实践经验,芯盾时代利用自主研发的智能风控决策平台(IRD)、账户风险监测系统(ARM)、终端威胁态势感知(MTD)、智能终端密码模块(PMIT)、设备指纹等产品…

没有 ADetailer,ComfyUI 画图脸崩了怎么办?

我们都知道 SD 的 WebUI 中的面部修复神器是 ADetailer,不过它是 WebUI 的专属插件,在 ComfyUI 中是搜索不到这个插件的,但是并不代表 ComfyUI 就不能使用面部修复功能了,ComfyUI 中也是可以找到平替的。 今天我们就来讲讲在 Com…

爆赞!24年GitHub首本Python开发实战背记手册,标星果然百万名不虚传

Python (发音:[ paiθ(ə) n; (US) paiθɔn ] n. 蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富…

COGNEX康耐视 INsight Micro系列视觉系统安装手测

COGNEX康耐视 INsight Micro系列视觉系统安装手测

全新剧场app的独特功能

全新剧场App通过引入一系列独特功能,旨在提升用户体验、增加用户粘性并拓宽市场范围。以下是对这些功能的详细分析: 1、虚拟剧场导览: 功能概述:利用增强现实技术,为用户提供虚拟剧场导览体验。用户可以在App中启动这…