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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3安装psycopy2以及遇到问题解决方法

    Python3安装psycopy2以及遇到问题解决方法

    在本篇文章里小编给各位分享的是关于Python3如何安装psycopy2以及相关问题解决方法,需要的朋友们学习下。
    2019-07-07
  • Python动态声明变量赋值代码实例

    Python动态声明变量赋值代码实例

    这篇文章主要介绍了Python动态声明变量赋值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Python进阶之使用selenium爬取淘宝商品信息功能示例

    Python进阶之使用selenium爬取淘宝商品信息功能示例

    这篇文章主要介绍了Python进阶之使用selenium爬取淘宝商品信息功能,结合实例形式详细分析了Python使用selenium与requests模块爬取淘宝商品信息的相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • python实现提取百度搜索结果的方法

    python实现提取百度搜索结果的方法

    这篇文章主要介绍了python实现提取百度搜索结果的方法,涉及Python网页及字符串操作的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 利用Python自动监控网站并发送邮件告警的方法

    利用Python自动监控网站并发送邮件告警的方法

    这篇文章介绍的是通过定时执行python脚本,可以实现定期批量访问网站,如果发现网站打不开,第一时间发邮件到管理员邮箱进行预警。有需要的可以参考借鉴。
    2016-08-08
  • Python编写nmap扫描工具

    Python编写nmap扫描工具

    NMAP是一款开源的网络探测和安全审核的工具,今天我们用python的模拟实现一个简单版本的端口扫描工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Python实现学生管理系统的示例代码

    Python实现学生管理系统的示例代码

    学生管理系统是一个常见的应用程序,它可以帮助学校、教育机构或教师管理学生的信息,本文将介绍如何利用Python开发一个学生管理系统,需要的可以参考一下
    2023-07-07
  • Python简明讲解filter函数的用法

    Python简明讲解filter函数的用法

    本文和你一起来探索Python中的filter函数,让你以最短的时间明白这个函数的原理。也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效
    2022-06-06
  • pycharm不在cmd中运行却在python控制台运行问题解决

    pycharm不在cmd中运行却在python控制台运行问题解决

    这篇文章主要介绍了pycharm不在cmd中运行却在python控制台运行问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • python之while循环、无限循环用法及说明

    python之while循环、无限循环用法及说明

    这篇文章主要介绍了python之while循环、无限循环用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论