将Maven POM依赖项转换为ivy.xml文件

8
有没有一个Maven插件可以将Maven POM依赖项(包括传递依赖项)转换为ivy.xml文件?

是的,我知道 fr.jayasoft.ivy.ant Ant 任务,但是我正在寻找一个 Maven 插件! - JavaRocky
使用案例是什么?我是Ivy的忠实粉丝,但我大部分时间都在将其与Maven技术集成,而不是反过来。 :-) - Mark O'Connor
3个回答

7
这是一个 Ant 脚本。
<project name="convertPomToIvy" basedir="." default="all"
  xmlns:ivy="antlib:fr.jayasoft.ivy.ant"
  xmlns:ac="antlib:net.sf.antcontrib">

    <path id="antlib.classpath">
        <fileset dir="/path/to/ivy/libs" includes="*.jar"/>
    </path>

    <taskdef uri="antlib:fr.jayasoft.ivy.ant"
        resource="fr/jayasoft/ivy/ant/antlib.xml"
        classpathref="antlib.classpath"
        loaderref="antlib.classpath.loader"/>

    <target name="convert">
        <ivy:convertpom pomFile="pom.xml" ivyFile="ivy.xml" />
    </target>

</project>

可以从这里这里(以及可能其他地方)获取相关IT技术信息。


7
我认为尽可能完全依赖于apache是更好的选择。这里是我成功运行过的ant构建文件。 按照http://ant.apache.org/ivy/history/trunk/use/convertpom.html上指定的,只需要一行代码。
<project
  name="convertPomToIvy"
  basedir="." default="all"
  xmlns:ivy="antlib:org.apache.ivy.ant">

    <target name="convert">
        <ivy:convertpom pomFile="pom.xml" ivyFile="ivy.xml" />
    </target>
</project>

1
你可能想要说明如何运行它。很多人听说过Ant,但我们中的许多人都努力避免学习或使用它。(当我尝试明显的“ant -f foo.xml convert”时,我刚刚得到“BUILD FAILED / Users / james / workspace / JavaSignatureParser / foo.xml:7:问题:无法创建任务或类型antlib:org.apache.ivy.ant:convertpom原因:名称未定义。”-但我不知道也不关心Ant的很多东西...) - James Moore
如果你必须使用Ivy,那么你必须使用Ant。在这里教授如何使用Ant已经超出了范围。对于任何使用过Ant的人来说,他们只需从Eclipse中运行ant文件即可。 - Blessed Geek
请点击我提供的链接,访问org.apache.ivy.ant。 - Blessed Geek
你可以在不使用ivy本身的情况下使用ivy配置文件。例如,sbt可以读取ivy文件,因此我一直很高兴地使用ivy配置而不必关心ant。你也可以在ivy eclipse容器中仅用于进行依赖项解析的情况下使用ivy配置,而无需涉及ant。 - James Moore

1
根据Ivy 1.3-RC1 Changelog的说法:

新增:maven2 pom兼容性:大多数解析器现在能够处理m2 pom作为项目元数据,并且有一个新的convertpom任务能够将pom文件转换为ivy文件(IVY-140)

这个转换过程在这篇博客文章中有更详细的说明。
我知道这不是Maven,而是Ivy方面的问题,但无论如何似乎存在某些东西,对吧? 如果您愿意,可以将代码(可在网上获得)转换为Maven插件,以便通过Maven直接进行此转换。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接