将已有私库同步至云效

本文介绍如何将已有Maven私库中的制品包批量迁移到云效的Maven私库中。

操作步骤

云效支持两种方式将Maven私库中的制品包批量迁移到云效的Maven私库中,您可以根据实际需求进行选择:

  • 本地文件批量上传。

  • 从Nexus3导入制品。

步骤一:下载迁移工具

工具下载地址:https://agent-install-beijing.oss-cn-beijing.aliyuncs.com/maven-migration-jar-with-dependencies.jar

通过上面地址将jar包下载到本地,保存为maven-migration-jar-with-dependencies.jar。

步骤二:运行下载工具

本地文件批量上传

请确保机器上安装了java8及以上版本,在当前jar包的目录下执行如下命令: 运行命令:java -jar maven-migration-jar-with-dependencies.jar migrate --help可以查看帮助信息。

java -jar ./target/maven-migration-jar-with-dependencies.jar migrate --help
Usage: migrate migrate [-hV] [--dryrun] [--exclude=<exclude>]
                       [--include=<include>] --source-dir=<sourceDir>
                       --target-repo-password=<repoPassword>
                       --target-repo-url=<repoUrl>
                       --target-repo-username=<repoUsername>
迁移制品
      --dryrun              试运行,不会真正上传包
      --exclude=<exclude>   排除的groupId,多个groupId以逗号分割
  -h, --help                Show this help message and exit.
      --include=<include>   包含的groupId,多个groupId以逗号分割
      --source-dir=<sourceDir>
                            源文件目录,比如~/.m2/repository
      --target-repo-password=<repoPassword>
                            访问目标仓库的密码,可在packages.aliyun.com中仓库指
                              南中查看
      --target-repo-url=<repoUrl>
                            目标仓库地址,可在packages.aliyun.com中仓库指南中查
                              看
      --target-repo-username=<repoUsername>
                            访问目标仓库的用户名,可在packages.aliyun.com中仓库
                              指南中查看
  -V, --version             Print version information and exit.                      
     
重要

如果帮助信息中中文出现乱码,可先在命令行中执行chcp 65001,然后再执行java命令。

示例命令:

  java -jar maven-migration-jar-with-dependencies.jar  migrate --source-dir="/root/.m2/repository"  --target-repo-url="https://packages.aliyun.com/xxxxxx/maven/xxxxx-release-ogcezj"  --target-repo-username="672aca1cbecc93xxxxx" --target-repo-password="xxxxxxx" --include="com.taobao.text" --exclude="junit"

这条命令会将本地maven仓库中groupId为com.taobao.text下的所有包上传到当前仓库中。具体参数信息,可在制品仓库主页面,选择进入目标制品仓库,在仓库指南 > 本地文件批量上传中获取:

高的 - 2024-12-09T160121

从Nexus3导入制品

请确保机器上安装了java8及以上版本,在当前jar包的目录下执行如下命令: 运行命令:java -jar maven-migration-jar-with-dependencies.jar migrateNexus --help可以查看帮助信息。

java -jar maven-migration-jar-with-dependencies.jar migrateNexus --help
Usage: migrate migrateNexus [-hV] [--dryrun] [--exclude=<exclude>]
                            [--include=<include>] --nexus-host=<nexusHost>
                            --source-repo-id=<repoId>
                            --source-repo-password=<repoPassword>
                            --source-repo-username=<repoUsername>
                            --target-repo-password=<repoPassword>
                            --target-repo-url=<repoUrl>
                            --target-repo-username=<repoUsername>
迁移nexus3制品
      --dryrun              试运行,不会真正上传包
      --exclude=<exclude>   排除的groupId,多个groupId以逗号分割
  -h, --help                Show this help message and exit.
      --include=<include>   包含的groupId,多个groupId以逗号分割
      --nexus-host=<nexusHost> nexus服务器地址
      --source-repo-id=<repoId> 源仓库Id
      --source-repo-password=<repoPassword> 访问源仓库的密码
      --source-repo-username=<repoUsername> 访问源仓库的用户名 
      --target-repo-password=<repoPassword> 访问目标仓库的密码,可在packages.aliyun.com中仓库指南中查看
      --target-repo-url=<repoUrl> 目标仓库地址,可在packages.aliyun.com中仓库指南中查看
      --target-repo-username=<repoUsername> 访问目标仓库的用户名,可在packages.aliyun.com中仓库指南中查看
  -V, --version             Print version information and exit.
重要

如果帮助信息中中文出现乱码,可先在命令行中执行chcp 65001,然后再执行java命令。

示例命令:

  java -jar maven-migration-jar-with-dependencies.jar  migrateNexus --source-repo-id="maven-releases" --source-repo-username="admin" --source-repo-password="admin123" --nexus-host="http://localhost:8081" --target-repo-url="https://packages.aliyun.com/xxxxxxxx/maven/xxxxx-release-ogcezj"  --target-repo-username="672aca1cbecc93xxxxx" --target-repo-password="gKUf3xxxxx(" --include="com.taobao.text"

这条命令会将指定的Nexus仓库maven-releases中groupId为com.taobao.text下的所有包上传到当前仓库中。具体参数信息,可在制品仓库主页面,选择进入目标制品仓库,在仓库指南 > 从Nexus3导入制品中获取:

高的 - 2024-12-09T160320

步骤三:查看运行结果

出现migration is finished字样表示迁移已完成,即可在云效目标制品仓库中查看:

高的 - 2024-12-05T103359

高的 - 2024-12-09T154055