Ant权威指南-读书笔记

来源:互联网 发布:大数据导论 教学大纲 编辑:程序博客网 时间:2024/05/19 02:26

对于许多基于Java的工程而言,对所有Java源文件进行编译已不再是构建这些工程所需的唯一步骤。对于典型的HelloWorld程序、书中的例子以及简单applet,源文件的编译已经足够了。但是还有一些复杂的基于Java的工程,如Web应用或基于Swing的程序(如JBuilder),要求做更多的工作。必须根据资源控制得到最新的资源;未由Java编译器自动处理的依赖关系也需要得到管理;各种类必须捆绑并交付到多个位置,有时是作为JAR或WAR文件进行交付;某些Java技术,诸如EJB和RMI类,则需要单独的编译和代码生成步骤,这些均非由Java编译器完成。shell脚本和GNUmake通常是完成这些任务的首选工具,从“完成工作”的角度来说,这些工具可以很好地达到目的,但从长远来看,它们是不太友好的选择。

虽然GNU Make可以提供许多功能,但在易用性方面,却存在许多缺陷。makefile有其自己的语言方法,这就要求编写makefile的人具备此项专门的知识。GNU Make还缺乏平台无关性,因此对于同一个makefile,需要维护和分发多个版本。由于shell脚本和GNUmake(要记住,GNU Make只是现有shell基础上的一个语言扩展)所固有的性质,使得对于任何一个费专家级用户来说,在操作系统之间(甚至shell之间)进行迁移都是很困难的。

Ant将Java编译器作为一个类运行,而不是来自命令行的一个调用。保持在JVM中则允许用特定的代码处理错误,还可对sun公司通过其编译器提供的结果采取操作。Ant用XML作为构建文件语法,因此只是会增强开发人员和工程管理人员的技能,而不是灵气因学习新知识而过于疲劳。Ant对构建过程加以扩展,使其不只是运行程序,因此称之为构建环境比构建工具更为恰当。

本书的结构

本书涵盖了初识Ant的人所需的全部知识。对于Ant专拣来说,本书可作为一本参考书,其中提供了Ant核心任务的详细定义;讨论了Ant的主要特性;提供了用Ant来管理工程的一些最加实践;还解释了某些Ant问题的解决办法。

第一章,Ant入门。这一章逐步介绍了一个非常基本的Ant构建文件示例,其目的是是你能够很快上手。我们展示了如何创建目录、编译代码以及生成一个JAR文件,但是对于每一项工作如何进行的具体细节则未作深究。这一章还包括了Ant命令行使用的详细信息。最后得到一个构建文件的大致轮廓,以此作为初始模板。

第二章,安装和配置。这一章介绍了如何得到、安装以及在windows和unix平台上配置ant。我们列出了在这些开发平台上发现的一些缺陷,并提供了解决方法和方案。

第三章,构建文件。这一章介绍了一个示例工程上下文中的Ant够构建文件例子。我们对此构建文件的主要部分和结构加以了剖析和描述,还对一些问题作了解释,如Ant引擎的一般流程和Ant使用XML的好处等,并强调了构建文件的主要部分。

第四章,Ant Data Type.这一章详细描述了各种Ant DataType。尽管在前面的章节中已经用到过DataType,但这里才对其做深入研究。我们介绍了如何使用环境变量和如何传递命令行参数以进行处理,还说明了如何利用各种文件和模式。

第五章,用户编写任务。这一章涵盖了Ant的一个最佳功能,即能够对Ant进行扩展。由此编写扩展的功能,就能够处理特定工程可能需要的任何事情。作为一个意外收获,你可以在将来的工程中重用这些任务,对于你所付出的努力,你的收益将并不仅限于最初的实现。你的任务还可以得到共享并公开发布,这样即使是你不认识的人也能够由于你的工作而收益。

第六章,用户编写监听者。这一章介绍了如何设计和开发你自己的构建时间监听者。据此,你就可以编写类来完成一些操作,这些操作所基于的是与构建文件处理相关的流程。操作的范围很广,从特定复杂任务完成时的发送邮件,到将同样的事件重定向到一个集中的“构建监听框架”等均属于此范畴。正如用户编写任务一样,可能的用户编写监听者也是无法计数的。这一章还包括对监听者的进一步扩展:用户编写日志工具。利用这些日志工具,可以改进甚至替换Ant默认的日志系统。

第七章,核心任务。这一章是对全部核心Ant任务的详尽参考。对于每个任务,在此都可以看到一个描述、一组支持此任务的ant版本以及对所有任务属性的定义。从这里可以得到有关任务使用的有用示例。

第八章,可选任务。这一章的形式类似于第七章,是对Ant丰富的可选任务所提供的参考。

附录一,Ant的未来。这一部分所讨论的正如其标题所示。我们介绍了Ant未来的方向和将出现的新功能,另外还提供了有关建议,你可以通过采取所建议的步骤来避免使用很快就要过时的功能。

附录二,Ant解决方案。Ant可用于解决不同的构建问题,这一部分则深入研究了其中所采用的更为常见的方法。除此之外,我们还谈到如何使用带有级联工程结构的构建文件。这些工程结构有一个主工程目录以及许多子工程子目录。每个子目录工程包括其自己的构建文件,而且主工程有一个主构建文件,能够构建所有子工程。

术语

为一致起见,本书中将Ant指令文件称为构建文件(buildfile)。在其他与Ant相关的论坛和文献中,你可能还会看到注入build.xml和antfile的提法。这些词可以互换,不过构建文件更为合适。

XML元素记法即为<path>元素的一个例子。标签和元素之间的差别在于,标签仅指<path>,而元素则指从<path>到</path>间的全部内容。

<path>    <fileset dir="src">        <includes name="**/.java"/>    </fileset></path>
XML元素和标签定义了Ant的任务和构建文件中的DataType。任务(task)完成操作,并且相当于Ant引擎中的模块部件。DataType则为Ant引擎定义了复杂的数据分组,通常是路径或文件集。

文件名和路径名约定

Ant是一个Java程序,并采纳了Java“不明确”文件系统观点。在运行时,Ant会检查底层JVM所提供的路径分隔符和目录分隔符,并使用这些值。它会成功的解释构建文件中的“;”或":"。例如,在一个Unix机器上运行时,Ant将路径dir;dir\\subdir(注意转义符“\”),因此不是一个好的形式。在本书中,Unix和Windows的文件路径约定都会出现在例子中,以此来强调一点,即Ant并不关心你所用的平台。

Ant不处理跨平台的驱动器盘符。在Ant路径元素中使用驱动器盘符将限制构建文件在Windows环境下的使用。

建议与评论



0 0