文档首页/ 制品仓库 CodeArts Artifact/ 最佳实践/ 批量迁移Maven/NPM/PyPI组件至私有依赖库
更新时间:2024-11-06 GMT+08:00

批量迁移Maven/NPM/PyPI组件至私有依赖库

背景信息

制品仓库服务的私有依赖库支持通过页面手动上传下载私有组件,还支持与本地开发环境对接,通过本地开发环境上传下载私有组件。通过私有依赖库上传组件的操作请参考通过私有依赖库页面上传/下载私有组件

如果待上传的包太多,单个上传会很繁琐。通过私有依赖库提供的批量迁移工具可以提高上传效率,在易用性上能够更加便捷地从Nexus或其他类型仓库批量上传组件至私有依赖库。

准备工作

  • 已创建对应格式的私有依赖库。
  • 运行环境为Python3。
  • 若使用Nexus,迁移工具必须和Nexus运行在同一台Linux主机上,且必须和CodeArts服务网络连通,该主机必须安装Python3。

迁移Maven组件

  1. 从Maven本地仓库(例如:C:\Users\xxxxx\.m2\repository)找到需迁移的组件,复制到指定目录(用户自己指定)。
  2. 进入私有依赖库,在左侧边栏中选择目标Maven私有依赖库。
  3. 单击仓库名称,页面中仓库的详细信息显示“仓库地址”,单击即可复制该地址。
  4. 单击页面右上方“操作指导”,在弹框中单击“下载配置文件”,将配置文件settings.xml下载到本地。

    在本地打开配置文件,在文件中搜索并找到用户名与密码。

  5. 单击页面右上方,单击“下载迁移工具”将迁移工具压缩包(脚本uploadArtifact2.py、配置文件artifact.conf)下载到本地。
  6. 配置artifact.conf。

    [artifact]
    packageType = 组件类型,设置为Maven
    userInfo = username:password(步骤4中获取的用户名与密码)
    repoRelease = 仓库类型为 Release地址(步骤3中获取的仓库地址)
    repoSnapshot = 仓库类型为 Snapshot地址(步骤3中获取的仓库地址)
    srcDir = 组件的目录路径(用户自己指定),如存放在步骤1下载组件的目标路径。
    
    [nexus]
    nexusAddr=nexus地址
    nexusPort=nexus端口
    repoName=待迁移的nexus仓库名称
    userName=nexus用户名
    passwd=nexus密码

  7. 执行迁移脚本python uploadArtifact2.py。
  8. 进入对应的私有依赖库,查看组件包是否上传成功。

迁移npm组件

  1. 进入私有依赖库,在左侧边栏中选择目标npm私有依赖库。
  2. 单击仓库名称,页面中仓库的详细信息显示“仓库地址”,单击即可复制该地址。
  3. 单击页面右上方“操作指导”,在弹框中单击“下载配置文件”,将npmrc文件下载到本地。

    在本地打开配置文件,在文件中找到“_auth”字段的值并进行base64解码。

  4. 单击页面右上方,单击“下载迁移工具”将迁移工具压缩包(脚本uploadArtifact2.py、配置文件artifact.conf)下载到本地。
  5. 配置artifact.conf。

    [artifact]
    packageType = 组件类型,设置为npm
    userInfo = npm仓库下的配置文件npmrc中通过base64 解密后的_auth字段的值(参考步骤3)
    repoRelease = 私有依赖库地址(步骤2中获取的仓库地址)
    repoSnapshot = 保留为空
    srcDir = 组件的目录路径,例如:C:\Users\xxxxxx\repository,用户自己指定
    
    
    [nexus]
    nexusAddr=nexus地址
    nexusPort=nexus端口
    repoName=待迁移的nexus仓库名称
    userName=nexus用户名
    passwd=nexus密码

  6. 检查对应npm仓是否配置了路径白名单。

    请确认package.json中私有二进制包是否在白名单内,只有与白名单内匹配的二进制包才能上传成功;没有配置白名单,则package.json中私有二进制包都可以上传成功。

  7. 执行迁移脚本python uploadArtifact2.py。
  8. 进入对应的私有依赖库,查看组件包是否上传成功。

迁移PyPI组件

  1. 进入私有依赖库,在左侧边栏中选择目标PyPI私有依赖库。
  2. 单击仓库名称,页面中仓库的详细信息显示“仓库地址”,单击即可复制该地址。
  3. 单击页面右上方“操作指导”,在弹框中单击“下载配置文件”,将配置文件pypirc下载到本地。

    在本地打开配置文件,在文件中搜索并找到用户名与密码。

  4. 单击页面右上方,单击“下载迁移工具”将迁移工具压缩包(脚本uploadArtifact2.py、配置文件artifact.conf)下载到本地。
  5. 配置artifact.conf。

    [artifact]
    packageType = 组件类型,设置为pypi
    userInfo = username:password(步骤3中获取的用户名与密码)
    repoRelease = 私有依赖库地址(步骤2中获取的仓库地址)
    repoSnapshot = 保留为空
    srcDir = 组件的目录路径,例如:C:\Users\xxxxxx\repository,用户自己指定
    
    [nexus]
    nexusAddr=nexus地址
    nexusPort=nexus端口
    repoName=待迁移的nexus仓库名称
    userName=nexus用户名
    passwd=nexus密码

  6. 执行迁移脚本python uploadArtifact2.py。
  7. 进入私有库页面查看二进制包是否上传成功。