我们正在从 ivy 迁移到 maven。我们在 artifactory 中有很多 Artifact 是使用 ivy 发布的,因此 Artifact 文件夹/路径结构类似于
artifactory/libs-release/[organization]/[module]/[revision]/[type]s/[module](-[classifier]).[ext]
artifactory/libs-release/[organization]/[module]/[revision]/[type]s/ivy.xml
但是,当我们在 maven pom.xml 中添加依赖项时,依赖项名称将类似于
com.abc.xyz
.但是 maven 尝试查看路径
com/abc/xyz/
文件夹,而我们在
com.abc.xyz/my-artifact/1.0.0/jars/my-artifact.jar
中的 artifactory 中有 Artifact
我如何告诉 maven (pom.xml) 阅读和理解 artifactory 中的路径。
我尝试使用 ivy-maven-plugin 但它为某些 groovy 类提供了 classNotFound 错误,即使我在本地 m2 存储库文件夹中需要 groovy jars。
* 答案
好的,这就是我们所做的。我们手动创建文件夹,然后我们现在使用 makepom 插件将 ivy.xml 转换为 maven pom.xml
感谢您的所有建议,欢迎提供更多建议。
请您参考如下方法:
你为什么要尝试将 Maven 安装到 Ivy 中。 Ivy 在那里利用和模仿当时 Maven 已经拥有的东西。
由于 Ivy 可以读取 Maven 存储库,但反过来不行,我建议您使用 Nexus 设置自己的本地网络(或公司)Maven 存储库。或 Artifactory .然后,您可以将 Artifact 一个一个地上传到那里,并将这些 Ivy 构建标准化以指向该新的 Maven 存储库。
这在开始时需要一些额外的努力,但我相信它会在以后得到返回。
还有另一种选择,配置 Maven 以读取非标准存储库布局,但为什么要走这条路呢?一旦你选择了这条路,一切都会变得更加困难。