本文介绍如何将已有 Maven 私库中的制品包批量迁移到云效的 Maven 私库中。
操作步骤
-
下载迁移工具 migrate-local-repo-tool.jar 。
-
使用如下命令在本地运行迁移工具(请确保您的JDK版本为1.8及以上)。您的本地仓库中的a制品将会被批量迁移到云效中您所指定的 Maven 私库中。
java -jar migrate-local-repo-tool.jar -cd "$HOME/.m2/repository/" -t "<云效 Packages 的目标仓库地址>" -u <用户名> -p <密码>
参数
说明
-cd
您要迁移的本地目录,例如:$HOME/.m2/repository/。
-t
目标仓库地址。
-u
用户名。
-p
密码。
重要仓库地址、用户名和密码为您要上传的目标仓库的仓库地址、用户名及密码,您可以在云效 Packages 的 Maven 制品仓库的仓库指南中获取对应仓库的地址、username 和 password。
如果迁移的本地目录中文件目录过多或者目录层级过深,可能会导致迁移命令卡死或者返回异常。推荐做法是只迁移您自己的私有制品到私有仓库中,构建时拉取公共制品包可以使用我们提供的公共代理库。假设您的私有制品都放置在
$HOME/.m2/repository/com/alibaba/**
目录中,您可以将
com/alibaba/**/
目录复制一份到一个空的目录中,比如复制到
/tmp/repo/
中,然后运行迁移命令时将
-cd
命令参数指定为
/tmp/repo/
,这样迁移工具只会迁移您的私有制品。
-
迁移工具只支持迁移 release 版本包,不支持迁移 snapshot 版本包。
-
迁移的包目录结构及包名需满足
groupId/artifactId/version/package
规范。
添加现有私库为云效私库的远程仓库
云效提供了将其他仓库关联为远程仓库的功能,使得云效私库既具备上传下载包的能力,又具备代理其他仓库的能力。当使用云效私库下载包时,它也会尝试从远程仓库拉取包,并且缓存在云效私库。
远程仓库地址为您想要代理的私库地址,这个地址必须是公网可以访问的。如果该私库可以匿名访问,那么无需配置访问账号和密码。单击 绑定 可以保存配置。您可以随时修改配置或者解除关联。
-
只有已经缓存在云效私库的制品包才能被搜索到。
-
如果代理的远程仓库的网络环境不佳会导致云效私库的下载速度变慢。