如何使用maven从ivy存储库下载工件

如何使用maven从ivy存储库下载工件,maven,ivy,dependency-management,pom.xml,artifactory,Maven,Ivy,Dependency Management,Pom.xml,Artifactory,我们正从常春藤搬到玛文。我们在artifactory中有很多工件是使用ivy发布的,因此工件文件夹/路径结构类似于 artifactory/libs-release/[organization]/[module]/[revision]/[type]s/[module]([classifier]).[ext] artifactory/libs-release/[organization]/[module]/[revision]/[type]s/ivy.xml 但是,当我们在maven pom.xm

我们正从常春藤搬到玛文。我们在artifactory中有很多工件是使用ivy发布的,因此工件文件夹/路径结构类似于

  • 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

    如何让maven(pom.xml)读取并理解artifactory中的路径

    我尝试使用ivy maven插件,但它为某些groovy类提供了classNotFound错误,尽管我在本地m2存储库文件夹中需要groovy JAR

    *回答 好的,这就是我们所做的。我们手动创建文件夹,然后使用makepom插件将ivy.xml转换为maven pom.xml
    感谢您的建议,欢迎提供更多建议

    你为什么要把Maven放进常春藤里。艾薇在那里利用和模仿马文当时已经拥有的东西

    由于Ivy可以读取Maven repository,但不能读取Maven repository,因此我建议您使用或设置自己的本地网络(或公司)Maven repository。然后,您可以一个接一个地将工件上传到那里,并将这些常春藤构建标准化,以指向新的Maven存储库。 这在开始时需要一些额外的努力,但我相信以后会有回报的

    还有另一个选项,将Maven配置为读取非标准存储库布局,但为什么要这样做呢?一旦你选择了这条路,一切都会变得更加困难。

    看看我的答案。
    jar.macro
    特别方便,因为它会在构建jar时自动构建
    pom.xml
    。宏与
    jar
    任务非常相似

    我要做的是用我的每个JAR构建pom.xml,然后使用
    mvn deploy:deploy file
    将我的JAR部署到Maven存储库中

    mvn deploy:deploy-file -Dfile=$jar_file
        -D pomFile=pom.xml
        -D repositoryId=$repo_id
        -D url=$repo_url
    

    您可以将存储库布局更改为maven 2布局或创建虚拟布局吗?同意改变布局是最好的方法。Ivy支持Maven,不幸的是不是相反:-)Thx oers和Mark。我们希望避免改变存储库布局,因为我们现在处于开发周期的中间,并且还有很多其他团队开发的组件。所以,我们对破坏他们的构建持怀疑态度。谢谢。我们发现maven文档与ivy相比。另外,在其他一些工具中,比如Artifactory,他们总是给出Maven的例子,但在ivy上就不多了。虽然我们从项目一开始就开始使用常春藤,但为了让常春藤和人工制品在晚上工作,我们做了一些努力。所以,我们决定搬到maven。我在过去的公司中使用过maven,我看到它在有好的文档可用的情况下工作得更好。好的。Maven似乎更为主流,当你遇到问题时,你会更容易找到帮助。