【问题标题】:How to use Ant?如何使用蚂蚁?
【发布时间】:2010-10-16 05:48:42
【问题描述】:

我一直试图了解 Ant 的用途,但我仍然不明白。

谁能给我一个使用 Ant 的用例,我可以尝试看看 Ant 为何有用以及我可以用它做什么?

我在 Eclipse 中进行 Java 开发,并且刚刚开始使用 servlet 和 Google Web Toolkit。

【问题讨论】:

标签: java eclipse ant build-process build-automation


【解决方案1】:

Ant 是一个构建工具。例如,假设您的 Eclipse 工作区中有几个项目,所有这些项目都是一个更大的应用程序的一部分。要将其全部构建到包含依赖项的 jar 文件中,您可以选择所有项目并将它们导出为 jar 文件,但这有点麻烦。

Ant 是一种可扩展的解决方案。你用 XML 定义构建过程,ant 会根据这个秘籍编译你的 java 文件。

Ant 可以做的不仅仅是建筑。我在一家公司工作,该公司的部署机制是我们自己的存储库中的 Debian 软件包。我们有 Ant 脚本来构建 jar 文件,将它们和一些元数据文件排列到一个 Debian 包中,将它们放入存储库,然后重新生成存储库清单。

与任何 Java 一样,在您精通 Ant 之前,您需要了解很多配置,但一些基本教程应该让您了解自己正在学习的内容。

【讨论】:

    【解决方案2】:

    与任何构建工具一样,Ant 用于自动执行构建代码的重复性任务。

    而不是每次手动运行 javac,您将命令放入 Ant 脚本中,然后当您运行 ant 时,它会为您运行 javac。

    我使用 ant 的典型构建过程是这样的:

    • 在源代码上运行 javac
    • 在 tets 上运行 javac
    • 在源代码上运行 cobertura 工具(这是为了代码覆盖)
    • 从源代码中压缩类
    • 为 cobertura 仪表类添加罐子
    • jar 单元测试类
    • 在源代码上运行 checkstyle、pmd、findbugs 以查找警告
    • 通过 cobertura 运行单元测试以获取它们的代码覆盖率

    这是我在每个构建中完成的 8 个步骤,我只需运行“ant”即可完成。

    【讨论】:

      【解决方案3】:

      Ant 是一个基于 XML 的 make 文件。

      如果您是单个开发人员,并且已经使用 Eclipse 等 IDE 成功构建和打包代码,那么您将不会看到使用 Ant 的太多好处。

      当您有一个团队在代码上进行协作时,更大的好处就会出现。然后,如果您使用 Cruise Control 或其他一些持续集成工具,您会得到很大的提升。 CC 需要 Ant build.xml。

      【讨论】:

        【解决方案4】:

        这来自 ANT 文档,并且解释得很好。

        为什么有另一个构建工具 已经制作、gnumake、nmake、果酱和 其他的?因为所有这些工具都有 Ant 原作者的限制 开发时无法忍受 跨多个平台的软件。 Make-like 工具本质上是 基于外壳的:他们评估一组 依赖,然后执行命令 与您发布的内容不同 贝壳。这意味着您可以轻松地 通过使用或编写来扩展这些工具 适用于您的操作系统的任何程序 工作;然而,这也意味着 您将自己限制在操作系统中,或者 至少是操作系统类型,例如 Unix, 你正在做的事情。

        Makefile 本质上也是邪恶的。 任何为它们工作过的人 时间已经进入可怕的标签 问题。 “我的命令没有执行吗 因为我面前有一个空间 标签?!!”的原作者说 蚂蚁方式太多次。果酱之类的工具 在很大程度上照顾到了这一点, 但仍有另一种格式 使用并记住。

        蚂蚁是不同的。而不是模型 它通过基于 shell 的方式进行扩展 命令,Ant 使用 Java 扩展 类。而不是写shell 命令,配置文件是 基于 XML,调用目标树 执行各种任务的地方。每个 任务由一个对象运行 实现一个特定的任务 界面。

        当然,这会删除一些 与生俱来的表现力 能够构建一个外壳 命令,例如find . -name foo -exec rm {},但它使您能够跨平台工作——工作 无处不在。嘿,如果 你真的需要执行一个shell 命令,Ant 有一个任务 允许不同的命令 它是基于操作系统执行的 继续执行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-03-22
          • 1970-01-01
          • 2020-09-03
          • 1970-01-01
          • 2010-09-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多