浏览 2650 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-16
本文选自ONJava的“Top 15 Ant Best Practices”,作为备忘的笔记。 1、使用良好的规范编写Ant脚本 使用易于阅读的格式编写Build脚本-在每个Target之间插入空行;使用美观易于阅读的缩进;没行不要超过90个字符;为每个Target和属性挑选有意思的,易于理解的名字等等。 2、把build.xml放在项目的根目录下 把build.xml放在项目根目录下是个好习惯,这样做的好处是,你可以项目工作目录的任何子目录下编译代码,只需使用命令: ant -find compile。选项-find使Ant在当前目录的所有上级目录中查找Build脚本。 3、尽量只使用一个的Build File 4、提供友好的Build脚本使用帮助 为每个Target加入description属性,这样,可以使用命令: ant -projecthelp 列出所有Target的描述信息。 或者,也可以为Build脚本编写一个help target,如: xml 代码
5、提供一个Clean Target 每个Build脚本都应该包括一个Target,用来清除所有的生成文件和目录,运行Clean Target以后保留下来的目录应该都是在CVS上能找到的。如: xml 代码
不要自动执行clean,除非你有一个创建所有东西的Target。 6、使用Ant管理依赖 小心设计你的Build脚本,使一个大项目的构建可以按步骤进行。首先,应该编译代码的公共部分,把它们打包成jar文件。然后,编译项目更高层次的其他代码。 这样,如果只需要低层次的公共代码,你不必花时间编译其他高层次的代码。 7、定义和重用文件路径 把路径定义集中在同一个地方能使Build脚本更易于管理和理解。 8、正确定义Target的相互依赖关系 经常检查并重构你的Build脚本,清除Target之间不不必要的依赖关系。 9、使用属性来配置Ant 任何可能需要修改的属性,或是不只使用一次的属性都要在Build脚本开始的地方定义,或在一个单独的Properties文件定义。 10、保持Build过程的独立性 为了获得最大程度的独立性,不要在Build脚本中包含任何位于Build目录下的目录或文件;不要依赖于开发人员的CLASSPATH环境变量。相反,要在Build脚本中使用相对路径。 如果你需要使用使用外部的目录(如tomcat的安装目录等),可以把它定义成一个属性变量。 11、使用版本控制管理 Build脚本是非常重要的配置管理项,应该和代码一样,放在版本控制工具里管理。当你为代码贴标签和版本时,也应该为Build脚本贴标签和版本。 通常情况下,不要把构建的生成物放入版本控制工具。 12、使用Ant作为构建任务的最小公约数 团队内部的开发人员可以自由选择开发工具。因此使用Ant作为构建任务的基线,使代码可以随时构建。 13、使用zipfileset Ant脚本通常用于创建WAR,JAR,ZIP和EAR文件。这些文件通常需要一个特定的内部文件结构。 一般的办法是把所需的目录和文件复制到一个临时目录,创建出所需的文件结构,然后在临时目录下创建,这是一个笨办法。 更有效的办法是使用zipfileset,它让你可以从任何位置选择文件,按所需的目录结构放入archived文件中。下面是一个例子: xml 代码
在上面的例子中,所有的jar文件都放入EAR文件的lib目录下。先前创建的hr.jar和billing.jar从${dir.build}目录中复制到EAR文件的lib目录下。 14、执行Build脚本的Clean测试 假设Build脚本有clean和compile两个Target,执行以下的测试: 第一步,运行ant clean 第二步,运行ant compile 第三步,再运行ant compile 第三步应该什么都不做,如果代码被重新编译,说明Build脚本有些问题。只有当输入文件发生变化时,Build脚本的Target才应该工作。 15、避免平台相关的Ant包装脚本 有些人喜欢使用批处理命令包装Ant脚本,如编写一个build.bat文件,其中包含命令:ant compile。其实这样做并没有必要。开发人员更喜欢直接使用ant compile,因为它可以在不同的平台下工作。 <target name="clean"><delete dir="${dir.build}"><ear earfile="${dir.dist.server}/payroll.ear"><fileset includes="commonServer.jar" dir="${dir.build}"><fileset dir="${dir.build}"><zipfileset prefix="lib" dir="${dir.build}"><include name="hr.jar"><fileset dir="."><include name="lib/jdom.jar"><include name="lib/log4j.jar"></include></include></fileset></include></zipfileset></fileset></fileset></ear></delete></target> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |