Python实现批量上传本地maven库到nexus

 更新时间:2024年01月14日 14:30:34   作者:onlyonexhj  
这篇文章主要为大家详细介绍了如何使用Python实现批量上传本地maven库到nexus,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考下

背景:外包类项目开发时是调用的公司maven仓库进行开发,交付后需要将maven仓库转移到客户环境。

原理:

1、打开idea运行源代码,将maven包下载到本地仓库,

2、下载包所在目录中执行脚本将本地仓库的maven包上传到客户nexus

脚本代码如下:

# -*- coding: utf-8 -*-
import os
import subprocess
 
# releases仓库地址
REPO_URL_RELEASES = "http://192.168.2.230:8081/repository/hosted-release/"
# snapshots仓库地址
REPO_URL_SNAPSHOTS = "http://192.168.2.230:8081/repository/hosted-snapshot/"
 
 
USERNAME = "admin"
PASSWORD = "admin"
 
def upload_files(repo_url, username, password):
    for root, dirs, files in os.walk("."):
        for file_name in files:
            if file_name.endswith(".sh"):
                continue
            if file_name.startswith("."):
                continue
            if "-SNAPSHOT" in root:
                continue
            if "_remote.repositories" in file_name:
                continue
            if file_name.startswith("^archetype-catalog.xml") or file_name.startswith("^maven-metadata-local.xml") or file_name.startswith("^maven-metadata-deployment.xml"):
                continue
 
            file_path = os.path.join(root, file_name)
            upload_url = os.path.join(repo_url, file_path[2:])
            curl_command = ["curl", "-u", "{}:{}".format(username, password), "-X", "PUT", "-v", "-T", file_path, upload_url]
 
            try:
                subprocess.check_call(curl_command)
            except subprocess.CalledProcessError as e:
                print("Failed to upload {}: {}".format(file_path, e))
            else:
                print("Uploaded: {}".format(file_path))
 
if __name__ == "__main__":
    print("Uploading releases...")
    upload_files(REPO_URL_RELEASES, USERNAME, PASSWORD)
 
    print("\nUploading snapshots...")
    upload_files(REPO_URL_SNAPSHOTS, USERNAME, PASSWORD)

到此这篇关于Python实现批量上传本地maven库到nexus的文章就介绍到这了,更多相关Python上传本地maven到nexus内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java编程迭代地删除文件夹及其下的所有文件实例

    Java编程迭代地删除文件夹及其下的所有文件实例

    这篇文章主要介绍了Java编程迭代地删除文件夹及其下的所有文件实例,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Python的turtle绘图库使用基础

    Python的turtle绘图库使用基础

    turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形,需要的朋友可以参考下
    2023-04-04
  • 如何利用 Python 绘制动态可视化图表

    如何利用 Python 绘制动态可视化图表

    这篇文章主要介绍了如何利用 Python 绘制动态可视化图表,主要介绍介绍如何进行保存gif格式的文件。那么我们就开始进入主题,来谈一下Python当中的gif模块,需要的朋友可以参考一下
    2022-02-02
  • Python 解决相对路径问题:

    Python 解决相对路径问题:"No such file or directory"

    这篇文章主要介绍了Python 解决相对路径问题:"No such file or directory"具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python使用DrissionPage实现上传文件的实战指南

    Python使用DrissionPage实现上传文件的实战指南

    在自动化测试和网页爬虫开发中,文件上传是一个常见需求,本文将详细介绍如何使用Python的DrissionPage库实现高效稳定的文件上传操作,有需要的可以了解下
    2026-01-01
  • Python bsonrpc源码解读

    Python bsonrpc源码解读

    这篇文章主要介绍了Python bsonrpc源码的相关资料,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • Python 实现一个计时器

    Python 实现一个计时器

    这篇文章主要介绍了Python 实现一个计时器的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Python黑魔法Descriptor描述符的实例解析

    Python黑魔法Descriptor描述符的实例解析

    与迭代器和装饰器等一样,描述符也是Python编程中的一项高级技巧,这里我们就来讲解Python黑魔法Descriptor描述符的实例解析:
    2016-06-06
  • Python函数之zip函数的介绍与实际应用

    Python函数之zip函数的介绍与实际应用

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象(python2 返回的是这些元组组成的列表 ),下面这篇文章主要给大家介绍了关于Python函数之zip函数实际应用的相关资料,需要的朋友可以参考下
    2022-03-03
  • 创建Shapefile文件并写入数据的例子

    创建Shapefile文件并写入数据的例子

    今天小编就为大家分享一篇创建Shapefile文件并写入数据的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11

最新评论