使用Python批量上传本地maven库到nexus

这篇具有很好参考价值的文章主要介绍了使用Python批量上传本地maven库到nexus。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

脚本代码如下:文章来源地址https://www.toymoban.com/news/detail-795519.html

# -*- 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的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Maven本地配置获取nexus私服的依赖

    Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包: Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包_nexus maven-releases 允许deploy-CSDN博客 在上面讲的是在需要拉取私服依赖的项目中的pom中配置repository的方式去

    2024年02月05日
    浏览(34)
  • Maven进阶2 -- 私服(Nexus)、私服仓库分类、资源上传和下载

    目录 私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题。 Nexus 是sonatype公司的一款maven私服产品。 下载地址 启动 访问 登录   本地仓库上传和访问资源需要进行 配置 。 ①创建两个仓库demo-snapshot和demo-release   ②配置访问私服的权限 ③配置私服访问路

    2024年02月13日
    浏览(32)
  • Docker本地部署Nexus Maven私服并实现远程访问管理界面

    本文主要介绍如何在Linux中使用Docker一键部署Nexus Maven私有仓库工具并结合Cpolar内网穿透实现远程访问Nexus进行管理。 Nexus是一个仓库管理工具,用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关,可以作为Maven仓库的服务器。Nexus提供了一个集中式的位置,用

    2024年01月19日
    浏览(34)
  • Maven学习1_将项目打包jar然后上传到GitHub、Nexus Sonatype仓库、搭建Sonatype私服

    概述 主要学习记录Maven仓库相关知识,如何借助上传项目jar包到GitHub、Nexus Sonatype,,以及搭建自己的Nexus Sonatype私服,然后在Maven项目的pom文件引入使用,参考Maven官网文档:https://central.sonatype.org/publish/publish-maven/ 需要了解:Maven中央仓库并不支持直接发布jar 包,需要将jar 包

    2024年02月15日
    浏览(33)
  • Maven配置Nexus3使用

    接上一篇 Nexus安装:https://www.cnblogs.com/huzccc/p/17773901.html 仓库类型 说明 proxy 代理到远程仓库,默认国外,可以修改为国内阿里云代理 group 存放:通过 Nexus 获取的第三方 jar 包 hosted 存放:本团队其他开发人员部署到 Nexus 的 jar 包 还有一些仓库名称: 仓库名称 说明 maven-cent

    2024年02月08日
    浏览(30)
  • Intellij-idea 如何编译maven工程

    在 IntelliJ IDEA 中编译 Maven 工程是一个相对直接的过程。以下是基本步骤: 1. 打开或导入 Maven 项目 如果您已经有一个现有的 Maven 项目,可以直接在 IntelliJ IDEA 中打开它。选择 File Open,然后浏览到您的 Maven 项目文件夹,选择包含 pom.xml 的目录。 如果您是从现有的源代码导入

    2024年01月25日
    浏览(48)
  • Intellij-idea 如何编译maven工程*

    在 Intellij IDEA 中编译 Maven 工程的步骤如下: 打开你的 Maven 工程。如果工程已经在 IDEA 中打开,那么你可以直接进行下一步。如果没有,你可以通过 File - Open 在弹出的对话框中选择你的 Maven 工程路径进行打开。 打开 Maven 项目窗口。在 IDEA 的右边会有一个 Maven 项目的窗口,

    2024年02月02日
    浏览(44)
  • Maven私有仓库搭建与使用【nexus的配置与使用】【Windows】

    在公司开发测试过程中,内网团队使用一个服务来节省外网宽带以及缓存Maven Respository中没有的jar包 允许上传和下载私有库,并且不被外部访问,安全稳定 官网下载地址,但是速度很慢,可以使用以下链接获取:添加链接描述 解压好下载的nexus压缩包,会有以下两个文件:

    2023年04月08日
    浏览(46)
  • 使用jenkins nexus插件配置并上传软件包至nexus制品库详细步骤

    Nexus 是一个强大的仓库管理工具,用于管理和分发 Maven、npm、Docker 等软件包。它 提供了一个集中的存储库,用于存储和管理软件包 ,并提供了版本控制、访问控制、构建和部署等功能。 Nexus 可以帮助开发团队提高软件包管理的效率和可靠性,减少软件包冲突和版本不一致的

    2024年02月05日
    浏览(40)
  • 如何在Intellij-idea如何编译maven工程

    在 IntelliJ IDEA 中编译 Maven 工程,你需要遵循以下步骤: 打开 IntelliJ IDEA :首先,启动 IntelliJ IDEA。 打开 Maven 项目 :在欢迎界面上,选择 \\\"Get from Version Control\\\",然后选择你的 Maven 项目的仓库地址。或者,如果你已经有了项目文件(如  .idea  和  pom.xml ),你可以直接打开这

    2024年01月18日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包