【问题标题】:Is there a way I can use Maven repositories to add dependencies to Ant?有没有办法可以使用 Maven 存储库向 Ant 添加依赖项?
【发布时间】:2010-11-28 04:33:06
【问题描述】:

我想知道是否有人见过将 Maven 依赖项添加到 Ant 的技术。我原以为 Ivy 就是要这么做的,但后来我意识到它只是一个 Ant 风格的依赖管理工具。

在我看来,如果有人将 Ant 扩展为能够引用 Maven 依赖项(可能仅适用于开源库),Ant 可以搭载 Maven 的至少一项出色功能,而无需重新发明轮子。

有什么想法吗?

【问题讨论】:

    标签: maven-2 ant


    【解决方案1】:

    Maven 应用程序有一组 Ant 任务,可以下载并放置在您的 Ant lib 目录中。之后,您可以在 Ant 中声明一个由 POM 中的依赖项定义的类路径。这是您可以在 build.xml 中声明的示例。

    <artifact:dependencies filesetId="deps.fileset" type="jar">
      <pom file="mypom.xml"/>
    </artifact:dependencies>
    

    更多详情请见herehere

    2021 年更新:

    也就是说,停止使用 Ant。这是一个古老的构建工具,最好被 Maven、Gradle 或它们的任何后代取代。

    【讨论】:

    • 您能详细说明一下吗?我是使用 Maven 和 Ant 的新手,但仍在尝试解决这个问题。谢谢。
    【解决方案2】:

    Mercury 有一组 ant tasks,允许您执行依赖管理任务、指定配置(例如服务器凭据)、修改/更改 ant 路径和写入存储库。详情请见this blog

    还有 Maven tasks 用于 ant,尽管它们的功能并不完整。 Maven 正在向 Mercury 发展(尤其是 Maven3),因此使用 Mercury 任务是有意义的。

    以下配置从指定的 pom 中读取依赖项,并使用生成的路径填充指定的变量:

    <path id="my.compile.path">
      <deps>
        <dependency name="groupId:artifactId:1.0::pom" 
            pom="${basedir}/artifactId-1.0.pom"/>
      </deps>
    </path>
    

    【讨论】:

      【解决方案3】:

      同意 Jherico 的回答 - Maven Ant Tasks。参考这个:Why you should use the Maven Ant Tasks instead of Maven or Ivy

      它有详细的例子,应该可以帮助你。

      【讨论】:

        【解决方案4】:

        我使用的是dependency:copy-dependencies maven 目标。这将复制target/dependencies 上的所有依赖项,因此我只需要在一个 ant 类路径中包含该文件夹中的所有 jar。

        【讨论】:

          猜你喜欢
          • 2018-04-16
          • 2019-02-20
          • 1970-01-01
          • 1970-01-01
          • 2011-06-10
          • 2017-10-18
          • 2021-12-07
          • 2021-03-22
          相关资源
          最近更新 更多