如何将库从 Ivy 缓存发布到神器 Ivy 存储库

问题描述 投票:0回答:2

我们丢失了第三方库(很多)的常春藤存储库。我们唯一拥有的是位于构建代理上的 ivy 缓存。现在我们决定迁移到 Artifactory,ivy:install 可以将依赖项从一个存储库复制到另一个存储库,但 ivy 缓存不是存储库。此外,ivy 缓存将 jar 文件的所有版本保存在同一目录下(ivy 缓存默认模式)- [organization]/[module]/[type]s/(无修订)。但我们想将它们分类到不同的目录中 - [组织]/[模块]/[修订]/[类型]s/。

完成此操作后,artifactory 中的新存储库功能是否应该与任何其他存储库相同?换句话说,通过这种方式创建存储库我会错过任何东西吗?

非常感谢任何帮助。

ivy artifactory
2个回答
1
投票

您可以在 Artifactory 中创建一个新的 存储库布局,以匹配 Ivy 缓存布局:

[org]/[module]/[type]s/[module](-[classifier])-[baseRev](-[fileItegRev]).[ext]

然后创建一个新的本地存储库,配置了Ivy缓存布局,并将Ivy缓存的内容导入到新的本地存储库中。
最后创建一个使用默认 Ivy 布局配置的新虚拟存储库,并包含您创建的本地存储库。虚拟存储库将执行ivy缓存布局和ivy默认布局之间的转换。您将需要配置 Ivy 以解析虚拟存储库中的工件。此外,您还可以在此虚拟中包含其他 Ivy 存储库。


0
投票

如果您使用 JFrog,文档说明您可以浏览到 jar 文件并将其手动导入到存储库中。进入 JFrog 后,您应该能够毫无问题地将罐子从中取出。我个人没有这样做,只是通过阅读文档,因为我想在旧的 JFrog 关闭并且备份丢失后将 .m2/repositories 导入 JFrog,所以我们必须导入 maven 中不再存在的 jar 并获取它们进入新的 JFrog。

如果您不想使用 .ivy2/cache 作为源位置,您可以使用 maven 手动摄取 jar 并将其安装到 .m2 中。这是有关如何执行此操作的众多网页之一:

如何将本地jar文件添加到Maven项目中?

它讨论了制作本地maven存储库(mvn部署:部署文件)和直接安装(mvn安装:安装文件)。使用 ivy jar 作为 -Dfile 值,然后使用 groupId、arifactId 和版本配置 m2 位置,如下所示:

mvn install:install-file \
-Dfile=./javax.sip.jain-sip-sdp/jain-sip-sdp-1.2.148.jar \
-DgroupId=javax.sip \
-DartifactId=jain-sip-sdp \
-Dversion=1.2.148 \
-Dpackaging=jar

希望这对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.