如何使用Ant?

我一直试图了解Ant的用途,但我仍然没有得到它。

有人可以给我一个用于Ant的用例,我可以尝试看看为什么Ant有用以及我可以用它做什么样的事情?

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

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

Ant是一种可扩展的解决方案。 您可以用XML定义构建过程,并且ant会根据此配方编译您的java文件。

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

与任何Java一样,在熟练使用Ant之前,需要进行大量配置才能掌握,但是一些基本教程应该让您了解自己的内容。

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

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

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

  • 在源上运行javac
  • 在tets上运行javac
  • 在源上运行cobertura检测(这是代码覆盖)
  • 从源头上解决这些问题
  • 装备cobertura仪表课程
  • 装备unit testing类
  • 在源上运行checkstyle,pmd,findbugs查找警告
  • 通过cobertura运行unit testing以获得它们的代码覆盖率

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

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

如果您是使用像Eclipse这样的IDE成功构建和打包代码的单个开发人员,那么使用Ant将无法获得多少好处。

当团队合作代码时,会带来更大的好处。 如果您使用Cruise Control或其他一些持续集成工具,那么您将获得巨大的提升。 CC需要Ant build.xml。

这是来自ANT文档并很好地解释了它。

为什么还有make,gnumake,nmake,jam等其他构建工具? 因为所有这些工具都具有Ant的原始作者在跨多个平台开发软件时无法忍受的限制。 类似Make的工具本质上是基于shell的:它们评估一组依赖项,然后执行与shell上发布的命令不同的命令。 这意味着您可以通过使用或编写正在使用的操作系统的任何程序来轻松扩展这些工具; 但是,这也意味着您将自己局限于操作系统,或者至少是您正在使用的操作系统类型,例如Unix。

Makefile本质上也是邪恶的。 任何时候都在使用它们的人都遇到了可怕的标签问题。 “我的命令没有执行,因为我的标签前面有空格?!!” 说Ant的原作者太多次了。 像Jam这样的工具在很大程度上解决了这个问题,但仍然有另一种格式可供使用和记忆。

ant是不同的。 使用Java类扩展Ant,而不是使用基于shell的命令扩展的模型。 配置文件不是编写shell命令,而是基于XML,调用目标树来执行各种任务。 每个任务都由实现特定Task接口的对象运行。

当然,这消除了能够构造诸如find . -name foo -exec rm {}类的shell命令所固有的一些表达能力find . -name foo -exec rm {} find . -name foo -exec rm {} ,但它使您能够跨平台 – 随时随地工作。 嘿,如果你真的需要执行一个shell命令,Ant有一个任务,允许根据它正在执行的操作系统执行不同的命令。