【问题标题】:how to convert pom.xml to build.xml如何将 pom.xml 转换为 build.xml
【发布时间】:2013-02-13 20:10:41
【问题描述】:

我是这个领域的新手。

在 pom.xml 中有一个部分,如下所示,我需要在 ant buid.xml 中进行更改。

我该怎么做?我可以从教程中获得任何帮助,或者任何人都可以解释什么

<dependency>
    <groupId>com.ask.core</groupId>
    <artifactId>wzlogging</artifactId>
    <version>1.5</version>
    <exclusions>
        <exclusion>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.glassfish.extras</groupId>
            <artifactId>glassfish-embedded-all</artifactId>
        </exclusion>
    </exclusions>
</dependency>

【问题讨论】:

  • 你已经有build.xml了吗?
  • POM 与 build.xml 文件无关,就像 Maven 与 Ant 无关一样。但是,如果您将 Ivy 集成到您的 Ant 环境中,您可以使用 convertpom 任务将 POM 转换为 ivy.xml 文件。
  • 我不需要只转换我上面提到的那部分,所以 不是一个选项对我来说
  • 你了解&lt;dependency&gt; 元素的作用吗?如果是,您如何处理当前脚本中的依赖项?如果没有,这里是文档:maven.apache.org/pom.html#Dependencies
  • @KarmakarA 如果不能选择常春藤,请提供更多详细信息。

标签: java maven ant


【解决方案1】:

理论上可以生成 ANT 构建文件(使用 XSLT?),但需要了解每个插件实现的逻辑。在实践中,只有简单的 Maven 构建才是可行的候选者。

ANT 和 Maven 是非常不同的构建技术。在 ANT 中,您将所有构建逻辑显式写入“build.xml”文件。另一方面,Maven 包含了大部分功能。“pom.xml”不包含任何逻辑,而是用于记录有关项目的元信息(例如依赖项列表)。

来自 ANT 世界,这可能会非常令人困惑,尤其是当您想要自定义构建时。在 Maven 中,这是通过声明插件来完成的,插件了解标准构建生命周期并能够将自己插入到构建的正确部分。

这个冗长的解释的目的是为了理解仅仅通过查看 POM 文件是不可能知道你的插件在做什么的。

@Perception 推荐常春藤。以下答案是相关的(从 ANT 转换为 Maven):

【讨论】:

  • 您可以使用mvn ant:ant 将脚本转换为等效任务(假设是标准插件)。但是,OP 似乎并不关心整个脚本,只是翻译依赖项。但是,从这个问题中无法判断她/他是否需要检索依赖项、应用排除项或完全不同的东西。
  • 问题问如何从 Maven 转换为普通的旧 Apache Ant,严格来说这是不可能的,因为 ant 不支持没有 Ivy 的项目依赖管理。我认为任何 XML 转换都无法解决问题。上面发布的链接涉及将 Ant 项目带到 Aaven,这是一种完全不同的动物(而且完全有可能)。
  • @parsifal 我从来不知道,Maven 支持一个 ant 插件,它允许用户在没有 maven 的情况下完全构建项目。我得把它读一遍。
  • @parsifal 你说得对,我忘记了 ant 插件 (+1)。但它只生成一个通用的构建文件。它无法查看自定义插件(这是给出的示例)并得出它在做什么
  • @RudolphEst 生成包含 ivy 任务的 ANT 构建以降低依赖项是可行的。如果不允许常春藤,理论上可以有一系列“get”语句......正如我在回答中所说,它只适用于非常简单的 Maven 文件(没有插件),写起来会很痛苦,而且会是一个相当毫无意义的练习:-)
【解决方案2】:

Maven 和 ant 是非常不同的工具。

Ant 主要是一个构建工具,这意味着它知道如何编译和打包源代码并运行测试,但没有管理项目依赖项的能力。 Ant 使用 build.xml 文件来定义在哪里可以找到源代码以及构建项目要采取的步骤。

Maven 不仅仅是一个构建工具,它还是一个项目管理工具。它允许您在 pom.xml 项目定义中定义依赖关系,以及构建、测试和分发应用程序。它还允许子项目、父项目,并且存在许多用于许多其他功能的插件。 Maven 会自动下载依赖关系并管理项目之间的这些依赖关系。

简单地说,不可能只将 Maven POM 项目转换为 Ant 构建。

有一些替代方案允许在 ant 构建中使用二进制 maven 依赖项。例如,看看Ivy dependency manager

【讨论】:

    【解决方案3】:

    Maven 有一个有用的 Ant 插件,可以轻松地从 Maven pom.xml 生成 Ant 构建文件。 使用这个 maven 目标:mvn ant:ant。

    在 Eclipse 中:简单地为 Maven 构建生成另一个运行配置。将其命名为“Antfile 生成”。在“目标”字段中输入 ant:ant。将这些更改应用于您的新运行配置。键入 run 开始构建。在控制台日志中,您会收到一条消息

    [INFO] 将 PROJECTNAME 的 Ant 项目写到 .

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      • 2018-07-08
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多