用 Groovy 进行 Ant 脚本编程

http://tech.ddvip.com   2008年09月09日    社区交流

内容摘要:Ant 和 Maven 两者在构建处理工具的世界中占统治地位。但是 XML 却凑巧是一种非常没有表现力的配置格式。在“实战 Groovy”这个新系列的第 2 期中,Andrew Glover 将介绍 Groovy 的生成器实用工具,这个工具能够极其容易地把 Groovy 与 Ant 和 Maven 结合在一起,形成更具表现力、更可控的构建。

  Ant 作为 Java 项目构建工具的普遍性和实用性是无法超越的。即使是 Maven 这个构建领域的新锐工具,也要把自己的许多强大能力归功于从 Ant 学到的经验。但是,这两个工具有共同的不足之处:扩展性。即使 XML 的可移植性在促进 Ant 和 Maven 走向开发前端上扮演了主要角色,XML 作为构建配置格式的角色仍然或多或少地限制了构建过程的表现力。

  例如,虽然在 Ant 和 Maven 中都有条件逻辑,但是用 XML 表示有些繁琐。而且,虽然可以定义定制任务来扩展 Ant 的构建过程,但是这么做通常会把应用程序的行为局限在有限的沙箱中。因此,在本文中,我将向您演示如何把 Groovy 和 Ant 在 Maven 内部 结合起来,形成更强大的表现力,从而对构建过程进行更好的行为控制。

  很快您自己就会看到,Groovy 给 Ant 和 Maven 都带来了令人瞩目的增强,Groovy 的优点在于它常常能恰到好处地弥补 XML 的遗漏!实际上,看起来 Groovy 的创建者肯定也曾经历过用 XML 实施 Ant 和 Maven 构建过程的痛苦,因为他们引入了 AntBuilder,这是一个强大的新工具,支持在 Groovy 脚本中利用 Ant。

  在 实战 Groovy 的这一期中,我将向您展示不用 XML,转用 Groovy 作为您的构建配置格式,对构造过程进行增强是多么容易。闭包(closure)是 Groovy 的一个重要特性,而且是这门语言之所以与众不同的核心,所以我在转到下一节之前,先要对闭包做一个快速回顾。

  快速回顾闭包

  就像 Groovy 自己的一些非常著名的祖先一样,Groovy 也支持 匿名函数 或 闭包(closure) 的概念。如果您曾经用 Python 或 Jython 编写过代码,那么您可能对闭包比较熟悉,在这两种语言中,都是用 lambda 关键字引入闭包。在 Ruby 中,如果 没有 利用块或闭包,那么您就不得不实际地编写脚本。即使是 Java 语言,也要通过它的 匿名内部类,对匿名函数提供了有限形式的支持。

来源:developerWorks    作者:Andrew Glover    责编:豆豆技术应用

正在加载评论...