商品描述



编辑推荐



《Java开发超级工具集》:
所有真正的手艺人都需要最好的工具来完成最佳工作,程序员也不例外。《Java开发超级工具集》介绍了30种开源工具,这些工具被设计用于改进任何规模的团队或组织中的Java开发人员的开发实践。书中每章包括多个小节,每章介绍了一种特定工具(无论该工具是用于构建系统、版本控制还是用于开发过程的其他方面),因此,读者相当于在一《Java开发超级工具集》中获得了30本简短参考书。无论选择何种开发方法(敏捷开发、RUP、XP、SCRUM或是其他方法),《Java开发超级工具集》中的实用技术和工具都能帮助用户优化开发流程并将其自动化。《Java开发超级工具集》讨论了Java开发的关键问题领域和最佳实践,重点介绍了开源工具,这些工具能够提高开发周期中每个领域的生产效率,它们包括:构建工具,如Ant和Mayen2。
版本控制工具,如CVS和Subversion。质量度量工具,如CheckStyle、PMD、FindBugs和Jupiter文档工具,这些工具可以减少用于编写和维护文档的时间,同时又能生成良好文档。单元测试工具,如JUnit4、TestNG和开源测试覆盖工具Cobertura。自动化集成、负载和性能测试工具;自动化Web服务、Swing界面和Web界面测试工具。问题管理工具,如Bugzilla和Trac。持续集成工具,如Continuum、CruiseControl、LuntBuild和Hudson。这些工具可以改进开发实践并使开发过程更加轻松,《Java开发超级工具集》是首席开发人员和软件架构师的必读读物,它可以使其职业生活井然有序。



媒体推荐



这是一本相当实用的Java技术图书,旨在帮助读者提高自己和团队的生产力。这些工具的用法并不复杂,但很多开发人员因为不了解它们背后的动机和理念,对这些工具始终停留在“观望”阶段,想用却一直不知道应该怎么用才算用对、用好。本书语言精练、内容丰富,不仅提供了这些工具的”全景图“,告诉读者如何把这些工具组织在一起发挥出最大的作用,还给读者留下了一定的选择空间,让他们能在同类产品中根据自己的喜好和项目的特点选择适合自己的工具,而没有将作者主观的偏好强加于读者。愿这本书的出版能给广大Java程序员和项目经理带来生产力的飞跃。 
  ——Rujia



作者简介



作者:(美国)斯马特(John Ferguson Smart) 译者:张文波 等

John Ferguson Smart,是Wakaleo咨询公司(www.wakaleo.com/)的首席咨询顾问,该公司提供企业Java和敏捷开发方面的咨询、培训和指导服务。



目录



第一部分 构建工具 
第1章 使用Ant设置项目 
1.1 构建过程中的Ant 
1.2 安装Ant 
1.3 Ant概述 
1.4 在Ant中编译Java代码 
1.5 使用属性自定义构建脚本 
1.6 在Ant中运行单元测试 
1.7 用Javadoc生成文档 
1.8 将应用程序打包 
1.9 部署应用程序 
1.10 引导构建脚本 
1.11 用Maven任务在Ant中使用Maven依赖 
1.12 在Eclipse中使用Ant 
1.13 在NetBeans中使用Ant 
1.14 用XMLTask操作XML 
1.15 小结 

第2章 使用Maven 2设置项目 
2.1 Maven和开发构建过程 
2.2 Maven和Ant 
2.3 安装Maven 
2.4 声明式构建和Maven项目对象模型 
2.5 理解Maven 2的生命周期 
2.6 Maven目录结构 
2.7 根据环境配置Maven 
2.8 Maven 2中的依赖管理 
2.9 用MvnRepository查找依赖 
2.10 项目继承和聚合(Aggregation) 
2.11 使用原型(Archetype)创建项目模板 
2.12 编译代码 
2.13 测试代码 
2.14 打包和部署应用程序 
2.15 使用Cargo部署应用程序 
2.16 在Eclipse中使用Maven 
2.17 在NetBeans中使用Maven 
2.18 使用插件定制构建过程 
2.19 用Archiva设置企业存储库 
2.20 使用Artifactory设置企业存储库 
2.21 在Maven中使用Ant 
2.22 高级原型 
2.23 使用组件(Assembly) 

第二部分 版本控制工具 
第3章 使用CVS设置版本控制 
3.1 CVS概述 
3.2 设置CVS仓库 
3.3 在CVS中创建新项目 
3.4 检出项目 
3.5 处理文件--更新和提交 
3.6 解决仓库锁定问题 
3.7 使用关键字替换 
3.8 处理二进制文件 
3.9 CVS标记 
3.10 在CVS中创建分支 
3.11 从分支中合并更改 
3.12 查看更改历史 
3.13 还原更改 
3.14 在Windows中使用CVS 

第4章 用Subversion设置版本控制 
4.1 Subversion概述 
4.2 安装Subversion 
4.3 Subversion仓库类型 
4.4 设置Subversion仓库 
4.5 设置新的Subversion项目 
4.6 检出工作副本 
4.7 将现有文件导入到Subversion 
4.8 理解Subversion仓库的URL 
4.9 使用文件 
4.10 查看当前状态:Status命令 
4.11 解决冲突 
4.12 使用标记、分支和合并 
4.13 回滚到以前的修订版本 
4.14 对二进制文件使用文件锁定 
4.15 打破和窃取锁定 
4.16 用svn:needs-lock属性使锁定文件成为只读 
4.17 使用属性 
4.18 Subversion中的更改历史记录:日志和Blaming 
4.19 用svnserve设置Subversion服务器 
4.20 设置安全的svnserve服务器 
4.21 设置支持WebDAV/DeltaV的Subversion服务器 
4.22 设置安全的WebDAV/DeltaV服务器 
4.23 用钩子脚本定制Subversion 
4.24 将Subversion安装为Windows服务 
4.25 备份和还原Subversion仓库 
4.26 在Eclipse中使用Subversion 
4.27 在NetBeans中使用Subversion 
4.28 在Windows中使用Subversion 
4.29 缺陷跟踪和变更控制 
4.30 在Ant中使用Subversion 
4.31 小结 

第三部分 持续集成 
第5章 用Continuum设置持续集成服务器 
5.1 Continuum概述 
5.2 安装Continuum服务器 
5.3 手工启动和停止服务器 
5.4 检查服务器状态 
5.5 以Verbose模式运行Continuum服务器 
5.6 添加项目组 
5.7 添加Maven项目 
5.8 添加Ant项目 
5.9 添加外壳脚本项目 
5.10 管理项目构建 
5.11 管理用户 
5.12 设置通知方法(Notifier) 
5.13 配置和制订构建计划 
5.14 调试构建 
5.15 配置Continuum邮件服务器 
5.16 配置Continuum网站端口 
5.17 用Continuum自动生成Maven网站 
5.18 配置手工构建任务 
5.19 小结 

第6章 用CruiseControl设置持续集成服务器 
6.1 CruiseControl概述 
6.2 安装CruiseControl 
6.3 配置Ant项目 
6.4 用Publisher(发布器)通知开发人员 
6.5 在CruiseControl中设置Maven 2项目 
6.6 CruiseControl操作面板 
6.7 第三方工具 
6.8 小结 

第7章 LuntBuild--基于Web的持续集成服务器 
7.1 LuntBuild概述 
7.2 安装LuntBuild 
7.3 配置LuntBuild服务器 
7.4 添加项目 
7.5 为版本编号使用项目变量 
7.6 构建结果诊断 
7.7 与Eclipse一起使用LuntBuild 
7.8 在Luntbuild中使用Cobertura报告测试覆盖 
7.9 将Luntbuild与Maven集成 
7.10 小结 

第8章 使用Hudson进行持续集成 
8.1 Hudson概述 
8.2 安装Hudson 
8.3 管理Hudson的主目录 
8.4 安装升级 
8.5 配置Hudson 
8.6 添加新构建任务 
8.7 组织任务 
8.8 监控构建 
8.9 查看和提升特定构建 
8.10 管理用户 
8.11 认证与安全 
8.12 查看更改 
8.13 Hudson插件 
8.14 记录测试结果 
8.15 记录代码度量 
8.16 报告代码覆盖 

第9章 用Openfire设置即时消息平台 
9.1 开发项目中的即时消息软件 
9.2 安装Openfire 
9.3 在Openfire上设置用户账户 
9.4 认证外部数据库中的用户 
9.5 针对POP3服务器认证用户 
9.6 用群聊天召开虚拟团队会议 
9.7 用Openfire插件扩展功能 
9.8 与Continuum一起使用Openfire 
9.9 与CruiseControl一起使用Openfire 
9.10 与Luntbuild一起使用Openfire 
9.11 使用Smack API从Java应用程序中发送Jabber消息 
9.12 用Smack API检测用户是否在线 
9.13 使用Smack API接收消息

第四部分 单元测试 
第10章 用JUnit测试代码 
10.1 JUnit 3.8和JUnit 4 
10.2 用JUnit 4进行单元测试 
10.3 设置和优化单元测试用例 
10.4 用Timeout进行简单的性能测试 
10.5 轻松地检查异常 
10.6 使用带参数的测试 
10.7 使用assertThat和Hamcrest库 
10.8 JUnit 4的理论机制 
10.9 与Maven 2一起使用JUnit 4 
10.10 与Ant一起使用JUnit 4 
10.11 在Ant中有选择地运行JUnit 4测试 
10.12 集成测试 
10.13 在Eclipse中使用JUnit 4 

第11章 用TestNG进行下一代测试 
11.1 TestNG概述 
11.2 用TestNG创建简单单元测试 
11.3 定义TestNG测试套件 
11.4 Eclipse的TestNG插件 
11.5 在Ant中使用TestNG 
11.6 与Maven 2一起使用TestNG 
11.7 管理测试生命周期 
11.8 使用测试组 
11.9 管理依赖 
11.10 并行测试 
11.11 测试参数和数据驱动的测试 
11.12 检查异常 
11.13 处理部分失败 
11.14 重新运行失败的测试

第12章 用Cobertura 最大化测试覆盖 
12.1 测试覆盖 
12.2 从Ant中运行Cobertura 
12.3 检查TestNG测试的代码覆盖 
12.4 理解Cobertura报告 
12.5 实施高水平代码覆盖 
12.6 在Maven中生成Cobertura报告 
12.7 将覆盖测试集成到Maven构建过程中 
12.8 Eclipse中的代码覆盖 
12.9 小结 

第五部分 集成、功能、负载和性能测试 
第13章 用StrutsTestCase测试Struts应用程序 
13.1 概述 
13.2 测试Struts应用程序 
13.3 StrutsTestCase概述 
13.4 使用StrutsTestCase 进行模拟测试 
13.5 测试Struts错误处理 
13.6 定制测试环境 
13.7 一级(First-level)性能测试 
13.8 小结 

第14章 用DbUnit进行数据库集成测试 
14.1 引言 
14.2 概述 
14.3 DbUnit的结构 
14.4 示例应用程序 
14.5 准备数据库 
14.6 验证数据库 
14.7 替换值 
14.8 其他数据集格式 
14.9 处理自定义数据类型 
14.10 其他应用 

第15章 用JUnitPerf进行性能测试 
15.1 JUnitPerf概述 
15.2 用TimedTest测量性能 
15.3 用LoadTest模拟负载 
15.4 对非线程安全的测试进行负载测试 
15.5 在Ant中分离性能测试和单元测试 
15.6 在Maven中分离性能测试和单元测试 

第16章 用JMeter进行负载和性能测试 
16.1 概述 
16.2 安装JMeter 
16.3 测试简单的web应用程序 
16.4 组织测试用例 
16.5 记录和显示测试结果 
16.6 使用JMeter代理服务器记录测试用例 
16.7 使用变量进行测试 
16.8 在多台计算机上进行测试 

第17章 用SoapUI测试Web服务 
17.1 概述 
17.1 SoapUI概述 
17.2 安装SoapUI 
17.3 安装本地web服务 
17.4 用SoapUI测试web服务 
17.5 用SoapUI进行负载测试 
17.6 从命令行运行SoapUI 
17.7 从Ant中运行SoapUI 
17.8 从Maven中运行SoapUI 
17.9 持续测试 
17.10 小结 

第18章 用Sun JDK工具监视和分析Java应用程序的性能 
18.1 Sun JDK性能分析和监视工具 
18.2 用jConsole连接并监视Java应用程序 
18.3 用jConsole监视远程Tomcat应用程序 
18.4 用JDK工具检测和识别内存泄露 
18.5 用堆转储、jmap和jhat诊断内存泄露 
18.6 检测死锁 

第19章 在Eclipse中分析Java应用程序的性能 
19.1 在集成开发环境中分析应用程序的性能 
19.2 Eclipse测试和性能工具平台 
19.3 安装TPTP 
19.4 TPTP和Java 6 
19.5 使用TPTP进行基本性能分析 
19.6 用基本内存分析结果分析内存使用 
19.7 分析执行时间 
19.8 显示代码覆盖统计 
19.9 使用过滤器优化结果 
19.10 分析web应用程序的性能 
19.11 小结 

第20章 测试用户界面 
20.1 概述 
20.2 用Selenium测试web应用程序 
20.3 用FEST测试Swing图形用户界面 
20.4 小结 

第六部分 质量度量工具 
第21章 用Checkstyle检测和实施编码标准 
21.1 用Checkstyle实施编码标准 
21.2 在Eclipse中使用Checkstyle 
21.3 在Eclipse中定制Checkstyle规则 
21.4 使用XML配置文件定制Checkstyle规则 
21.5 定制Checkstyle:可以舍弃和使用的常见规则 
21.6 用Checkstyle定义源代码文件头规则 
21.7 禁用Checkstyle测试 
21.8 与Ant一起使用Checkstyle 
21.9 与Maven一起使用Checkstyle

第22章 用PMD预先检测错误 
22.1 PMD和静态代码分析 
22.2 在Eclipse中使用PMD 
22.3 在Eclipse中配置PMD规则 
22.4 PMD规则集 
22.5 编写自己的PMD规则集 
22.6 在Eclipse中生成PMD报告 
22.7 禁用PMD规则 
22.8 用CPD检测剪切和粘贴 
22.9 在Ant中使用PMD 
22.10 在Maven中使用PMD 

第23章 用FindBugs预先检测错误 
23.1 FindBugs:专业的程序错误检测工具 
23.2 在Eclipse中使用FindBugs 
23.3 用FindBugs过滤器有选择地禁用规则 
23.4 使用FindBugs注释 
23.5 在Ant中使用FindBugs 
23.6 在Maven中使用FindBugs 
23.7 小结 

第24章 检查结果--用Jupiter进行半自动化代码评审 
24.1 Jupiter概述--用于Eclipse的代码评审工具 
24.2 在Eclipse中安装Jupiter 
24.3 理解Jupiter的代码评审流程 
24.4 进行个人代码审查 
24.5 配置 
24.6 设置默认配置值 
24.7 单独评审 
24.8 团队评审 
24.9 返工阶段 
24.10 Jupiter的后台处理 
24.11 小结 

第25章 用Mylyn突出工作重点 
25.1 Mylyn概述 
25.2 安装Mylyn 
25.3 跟踪任务和问题 
25.4 与任务仓库进行交互 
25.5 用上下文管理将工作重点集中在任务上 
25.6 使用Eclipse更改集 
25.7 与其他开发人员共享上下文 
25.8 小结

第26章 监视构建统计信息 
26.1 概述 
26.2 QALab 
26.3 用StatSCM度量源代码管理 
26.4 在Ant中用StatSVN提供统计信息 

第七部分 问题管理工具 
第27章 Bugzilla 
27.1 Bugzilla概述 
27.2 安装Bugzilla 
27.3 设置Bugzilla环境 
27.4 管理用户账户 
27.5 使用用户组来限制访问 
27.6 配置产品 
27.7 用里程碑跟踪进度 
27.8 用分类管理产品组 
27.9 搜索程序错误 
27.10 创建新程序错误 
27.11 Bugzilla程序错误的生命周期 
27.12 安排通知(Whining) 
27.13 在Bugzilla中定制字段 
27.14 小结 

第28章 Trac-轻量级项目管理 
28.1 Trac概述 
28.2 安装Trac 
28.3 设置Trac项目 
28.4 在独立服务器上运行Trac 
28.5 将Tracd设置为Windows服务 
28.6 在Apache服务器上安装Trac 
28.7 管理Trac网站 
28.8 管理用户账户 
28.9 剪裁Trac网站:使用Wiki功能 
28.10 使用Trac Ticket管理系统 
28.11 从Subversion中更新Trac问题 
28.12 定制Trac Ticket的字段 
28.13 设置电子邮件通知 
28.14 使用Trac查询和报告 
28.15 用Trac路线图(Roadmap)和时间线(Timeline)管理进度 
28.16 浏览源代码库 
28.17 使用RSS和ICalendar 
28.18 使用Python定制wiki页面 
28.19 小结 

第八部分 技术文档工具 
第29章 用Maven 2项目网站进行团队沟通 
29.1 作为沟通工具的Maven 2项目网站 
29.2 设置Maven网站项目 
29.3 将报告集成到网站中 
29.4 创建专用Maven网站项目 
29.5 定义网站框架 
29.6 Maven网站生成架构 
29.7 使用代码片断(Snippet) 
29.8 定制网站外观 
29.9 发布网站 

第30章 自动生成技术文档 
30.1 概述 
30.2 用SchemaSpy直观查看数据库结构 
30.3 用Doxygen生成源代码文档 
30.4 用UmlGraph在Javadoc中嵌入UML图表 
30.5 小结
参考资料



序言



所有真正的艺人都需要最好的工具来完成最佳工作,程序员也不例外。本书介绍了30种开源工具,这些工具被设计用于改进任何规模的团队或组织中的Java开发人员的开发实践。 
书中每章包括多个小节,每章介绍了一种特定工具(无论该工具是用于构建系统、版本控制还是用于开发过程的其他方面),因此,读者相当于在一本书中获得了30本简短参考书。 
无论选择何种开发方法(敏捷开发、RUP、XP、SCRUM或是其他方法),本书中的实用技术和工具都能帮助用户优化开发流程并将其自动化。本书讨论了Java开发的关键问题领域和最佳实践,重点介绍了开源工具,这些工具能够提高开发周期中每个领域的生产效率,它们包括: 
·构建工具,如Ant和Maven 2。 
·版本控制工具,如CVS和Subversion。 
·质量度量工具,如CheckStyle、PMD、FindBugs和Jupiter。 
·文档工具,这些工具可以减少用于编写和维护文档的时间,同时又能生成良好文档。 
·单元测试工具,如JUnit 4、TestNG和开源测试覆盖工具Cobertura。 
·自动化集成、负载和性能测试工具;自动化web服务、Swing界面和web界面测试工具。 
·问题管理工具,如Bugzilla和Trac。 
·持续集成工具,如Continuum、CruiseControl、LuntBuild和Hudson。 
这些工具可以改进开发实践并使开发过程更加轻松,本书是首席开发人员和软件架构师的必读读物,它可以使其职业生活井然有序。 
John Ferguson Smart是Wakaleo咨询公司(www.wakaleo.com/)的首席咨询顾问,该公司提供企业Java和敏捷开发方面的咨询、培训和指导服务。