我们正在从 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 以读取非标准存储库布局,但为什么要走这条路呢?一旦你选择了这条路,一切都会变得更加困难。


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!