这本书是关于Ant的——一个朵膺了众多奖项的Java构建工具。由于Ant简单易用、平台无关,它已经成为很多项目构建过程的核心,并解决了当今项日自动化测试和部署的难题。最初,Ant只是编译Tomcat的辅助程序,后者是Apache的JavaWeb服务器,如今Ant已经成长为一个独立的工具了,多个Java社区都开始接受并使用它了,并且改变了人们对开发工具的期望。.
如果你以前从未使用过Ant,这本书会给你一个全面的介绍,带你系统地纵览一遍大多数Java项目的核心步骤:编译、测试、执行、打包和交付。如果你是一个有经验的Ant用户,我们将告诉你一些“超越极限(push the envelope)”的Ant使用方法。我们着重强调了如何把Ant用于大型项目中的一部分,并且分享了来自于我们自身经验的最佳实践。
无论你对Ant的经验如何,我们相信你都能从这本书中学到很多知识。坚持使用Ant作为构建、测试、发布应用程序的方法,你的软件项目将从中获得益处。
谁应该阅读本书
这本书适合所有Java开发者,无论他/她工作于简单的个人项日,还是多团队开发的企业级项目。我们假设读者以前没有使用Ant的经验。不过即使是有经验的Ant用户,也能够在后面的章节里发现很多有趣的内容。我们希望读者具有基本的Java知识,不过对于Java新手来说,结合Ant来学习Java能获得额外的收获。一些更高级的Ant项目,比如构建企业级Java应用程序、Web Service,主要会引起从事这些领域开发的人的兴趣。我们将会简单地介绍这些技术领域,但是你还要阅读其他书籍才能完全掌握它们。
这本书是如何组织的
我们将本书分为3部分。第1部分介绍了Ant的基础知识,并示范了如何构建、测试、打包和交付一个Java库:第2部分将第1部分的主题带入了更深的层次,解释了如何使用Ant解决特殊的问题,比如协调多个项目的构建,企业级应用的部署和测试:第3部分是个短小精湛的指南,告诉你如何使用脚本语言和Java代码扩展Ant,这样Ant就能满足每个项目自身特殊的需要了,甚至还可以把Ant嵌入到你的应用程序中。
第1部分
在第1章中,我们首先简单地介绍了Ant是什么、Ant不是什么,以及哪些因素使Ant成为Java项目中最佳的构建工具。
第2章关注Ant的语法和机制。我们以一个简单的项目为起点,它只编译了一个单独的Java文件,然后我们把这个项目集成到Ant的构建过程当中去了,它可以完成Java应用程序的编译、打包和执行。..
结束了第2章中简单的基础项目后,要想进一步了解Ant,就需要定义Ant的抽象机制。第3章介绍了Ant的特征和Datatype,这些使开发人员可以在构建文件的不同部分之间共享数据。这一章非常关键,在这里你会明白是什么令Ant如此引入注目。
Ant与以测试为核心的开发方式是相辅相成的,所以在第4章中,我们介绍JUnit的同时引入了示范的应用程序。从这—‘章开始,测试将是本书中不断被提及的主题。
第5章介绍了如何打包Java代码。结束这章后,在第6章中我们会看到在Ant中能够运行Java和本地程序。在第7章中,我们通过E-mail、FTP和SCP上载,将打包好的程序发布出去。
如果只看书中的各个代码片段,将很难想象出事物的全景。在第8章中,我们示范了一个单独的构建文件,它合并了前面各章介绍的所有阶段。第8章还讨论了在移植到Ant、接受一个更清晰的目录结构时可能遇到的问题,以及其他与使用Ant管理项目时相关的主题。第2部分
本书的第2部分从很多方面扩展了核心的构建过程,解决了不同的项目可能会遇到的问题。第9章展示了如何用可选的和第三方任务实现新的功能,比如从版本管理系统中签出文件、审查代码,以及在构建文件中加入迭代逻辑和错误处理器。
第10章展现了Ant在大型项目中的表现——如何通过多个子项目构建一个大型的项目。第11章是这一章的补充。第11章介绍了如何使用Ivy库解决库依赖管理的问题。利用Ivy管理你的库依赖关系,并把不同项目的输出粘合到一起,以此来保证Java项目(尤其是大型项目)的可控性。
今天,很多Java开发者都把他们的时间花在了Web开发上。第12章介绍了Web程序的打包、部署和测试的方法。你只有部署了Web应用程序后才能测试它,所以开发过程此时已经趋于复杂了。
第13章讨论了一个与大多数Java开发者相关的主题:XML。无论你是简单地将XML用于部署描述符,还是在构建过程中将文档文件转换为可表现的格式,你都能在本章中找到答案。
第14章是为那些从事企业级Java开发的人准备的;它介绍了如何实现应用程序的持久化,如何在JBoss应用服务器上部署,如何使用Apache Cactus进行测试。
第2部分的最后两章介绍了如何改进开发过程的方法。第15章介绍了持续集成,它的概念是:每当有新代码嵌入时,服务器可以自动构建并测试应用程序。第16章介绍了自动化部署。很多开发者都由于这样或那样的原因忽略了这个主题,但是它最终会回来找我们的麻烦。将部署自动化——这是可能的——将会改变Java项目构建、测试和部署的风貌。
.第3部分
本书的最后一部分是关于如何基于Ant内置的功能对它进行扩展的。Ant的设计在很多方面都是可扩展的。第17章提供的信息及大量的示例能够指导你编写一个成熟的自定义的Java任务。
除了自定义的任务外,Ant还可以通过脚本语言进行扩展,它提供了很多的扩展点,包括资源、条件判断、过滤器读取器和选择器等。监控和记录构建过程也很容易按照项目的需要进行修改。第18章涵盖了所有这些技术。
结束以前
最后的3个附录绝对不是无足轻重的。附录A是为新的Ant用户准备的:它解释了如何安装Ant,涵盖了常见的安装问题和解决办法。由于Ant使用XML文件描述构建过程,附录B为部署不熟悉XML的读者提供了一个简明的教程。所有当前的Java集成开发环境(1DE)都集成了Ant。使用一个支持Ant的IDE,你就能够获得两个世界的优势了。附录C详细介绍了如何在几种流行的IDE中使用Ant。
我们没有在本书中附带一‘个Ant任务的快速参考手册。当你安装了Ant后,就能直接得到一份最新的文档副本,它包含了所有Ant任务和类型的参考文档。别忘了将这个文件加入到浏览器的书签中。
在线资源
有一个Web站点http://antbook.org/与本书的内容相关。你也可以从出版商的Web站点www.manning.com/loughran上找到它。这里有一些资源和作者的论坛,里面包含了本书中没有的额外内容,比如第1版的两个章节和参考资料的链接。随着时间发展,这里会涵盖更多与Ant相关的主题。
从antbook.org站点上可以下载书中所有的源代码和Ant构建文件,它们是在Apache协议卜发布的。它们被保存在SourceFroge开源存储仓库中(http://sourceforge.net/projects/antbook)。
另一个对Ant用户来说很重要的站点是Ant自己的主页http://ant.apache.org/。在这里可以找到Ant及它的在线文档。在Ant的邮件列表中,你可以结识更多的Ant用户和开发者,并寻求帮助。
代码格式约定
Courier New字体表示Java代码和Ant build文件的内容。Bold Courier New字体表示代码中的一些高亮的重点部分或发生变化的段落。
代码中的注释在一段代码中多次出现。有些注释用带圆圈的数字做标识。这表示后面会对相应的代码做进一步的解释。
作者在线
购买本书的读者可以白山防问一个Manning出版社维护的非公开论坛。在这里,你可以发表对本书的评论,咨询技术问题,从作者或者其他用户那里获得帮助。如果要访问论坛并订阅它的内容,可以访问www.manning.com/loughra。这里页面介绍了注册后如何登录论坛、可以获得哪些帮助以及论坛的行为准则。
Manning出版社的承诺是提供…个交流的场所,以供读者之间或读者和作者之间进行交流。但并不承诺作者会以特定的工作量来参与这个论坛,因为作者对在线论坛的付出是自愿的(也没有报酬)。我们建议你向作者提出一些有挑战性的问题,以免他对论坛失去兴趣!
只要本书仍然在发行,读者可以通过出版商的Web站点访问作者论坛及以前各种讨论的归档文件。...