ANT十五大最佳实践
2008-01-05 20:10:29 来源:WEB开发网 作者: Eric M. Burke, coauthor of java Extreme PRogramming Cookbook
原文:http://www.onjava.com/pub/a/onjava/2003/12/17/ant_bestpractices.Html
译者:stonexu
QQ:19722707
MSN:xt121@hotmail.com
在ANT出现之前,编译和部署Java应用需要使用包括特定平台的脚本、Make文件、不同的IDE以及手工操作等组成的大杂烩。现在,几乎所有的开源Java项目都在使用Ant,许多公司的开发项目也在使用Ant。Ant的大量使用,也自然带来了对总结Ant最佳实践的迫切需求。
本文总结了我喜好的Ant最佳实践,很多是从亲身经历的项目错误,或从其他开发者的“恐怖”故事中得到的灵感的。比如,有人告诉我有个项目将XDoclet 生成的代码放入锁定文件的版本控制工具中。单开发者修改源代码时,他必须记住手工检出(Check out)并锁定所有将要重生成的文件。然后,手工运行代码生成器,当他能够让Ant编译代码时,这一方法还存在一些问题:
生成的代码无法存储在版本控制系统中
Ant(本案例中是Xdoclet)应该自动确定下一次构建涉及的源文件,而不应由程序员人工确定。
Ant的构建文件应该定义好正确的任务依靠关系,这样程序员不必按照特定顺序调用任务。
当我开始一个新项目时,我首先编写Ant构建文件。文件定义构建的过程,并为团队中的每个程序员都使用。
本文所有的最佳实践假设Ant构建文件是一个必须精心编写的重要文件,它应在版本控制系统中得 到维护,并定期进行重构。下面是我的十五大Ant最佳实践。
1. 采用一致的编码规范
Ant用户不管是喜欢还是痛恨xml构建文件的语法,都愿意跳进这一迷人的争论中。让我们先看一些保持XML构建文件简洁的方法。
首先,也是最重要的,化费时间格式化你的XML让它看上去很清楚。不过XML是否美观,Ant都可以工作。但是丑陋的XML很难读懂。倘若你在任务之间留出空行,有规则的缩进,每行文字不超过90列,那么XML令人惊奇的易读。再加上好的编辑器或IDE高亮相应的语句,你就不会有如何阅读的麻烦。
同样,精选有意义明确、轻易读懂的词汇来命名任务和属性。比如,dir.reports就比rpts好。并不需要特定的编码规范,只要有一种规范并坚持使用就好。
2. 将build.xml 放在项目根目录中
Ant构建文件build.xml可以放在如何位置,但是放在项目顶层目录中可以保持项目简洁。这是最普遍的规范,使开发者能够在根目录找到它。同时,也能够轻易了解项目中不同目录之间的逻辑关系。以下是一个典型的项目层次:
[root dir]
build.xml
+--src
+--lib (包含第三方 JAR包)
+--build (由 build任务生成)
+--dist (由 build任务生成)
进入讨论组讨论。
当build.xml在顶级目录时,倘若你在项目某个子目录中,只要输入:ant -find compile 命令,不需要改变工作目录就能够以命令行方式编译代码。参数-find告诉Ant寻找存在于上级目录中的build.xml并执行。
3. 使用单一构建文件
有人喜欢将一个大项目分解到几个小的构建文件,每个构建文件分担整个构建过程的一小部分工作。但是应该熟悉到,将构建文件分割会增加对整个构建过程的理解难度。要注重在单一构建文件能够清楚表现构建层次的情况下,不要过工程化(over-engineer)。
即使你把项目划分为多个构建文件,也应使程序员能够在项目根目录下找到核心build.xml。尽管该文件只是将实际构建工作委派给下级构建文件,也应保证该文件可用。
4. 提供良好的帮助说明
应尽量使构建文件自文档化。增加任务描述是最简单的方法。当你输入ant -projecthelp时,你就可以看到带有描述的任务清单。比如,你可以这样定义任务: