【问题标题】:Maven POM dependencies to ivy.xml fileMaven POM 依赖于 ivy.xml 文件
【发布时间】:2011-04-12 13:30:44
【问题描述】:

是否有一个 maven 插件,我可以使用它来将 maven pom 依赖项(包括传递依赖项)转换为 ivy.xml 文件?

【问题讨论】:

  • 是的,我知道 fr.jayasoft.ivy.ant Ant 任务,但是我正在寻找一个 maven 插件!
  • 用例是什么?我是 ivy 的忠实粉丝,但我大部分时间都将它与 Maven 技术集成,而不是相反:-)

标签: java maven-2 ivy dependency-management


【解决方案1】:

根据 Ivy 1.3-RC1 Changelog

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

这种转换用云纹细节解释in this blog post

我知道这不是 maven,而是 Ivy 方面,但无论如何它似乎存在一些东西,不是吗? 如果您愿意,“应该”可以将代码 (available on the web) 转换为 maven 插件,以便由 maven 指导这种转换。

【讨论】:

    【解决方案2】:

    这是一个 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>
    

    来自herehere(可能还有其他地方)

    【讨论】:

      【解决方案3】:

      我觉得还是尽量只依赖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>
      

      【讨论】:

      • 您可能想知道如何运行它。很多人都听说过 ant,但我们中的许多人都非常努力地避免学习或使用它。 (我刚收到“BUILD FAILED /Users/james/workspace/JavaSignatureParser/foo.xml:7:问题:创建任务或类型 antlib:org.apache.ivy.ant:convertpom 失败原因:名称未定义。”当我尝试了明显的“ant -f foo.xml convert”——但我不太了解或关心 ant...)
      • 如果非要使用Ivy,就必须使用Ant。教如何使用 Ant 超出了这里的范围。 AFA 任何使用过 Ant 的人,他们只需从 eclipse 运行 ant 文件。
      • 点击我为 org.apache.ivy.ant 提供的链接。
      • 您可以使用 ivy 配置文件而不使用 ivy 本身。一方面,sbt 可以读取 ivy 文件,所以我很乐意使用 ivy 配置,而无需关心 ant。你也可以在 ivy eclipse 容器中使用 ivy 配置来做依赖解析,不涉及 ant。
      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2022-12-06
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2012-04-29
      相关资源
      最近更新 更多