JAVA开发超级工具集
JAVA开发超级工具集
John Ferguson Smart
张文波 等译
出版时间:2009年11月
页数:762
所有真正的手艺人都需要最好的工具来完成最佳工作,程序员也不例外。本书介绍了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和敏捷开发方面的咨询、培训和指导服务。
  1. 前言
  2. 导言
  3. 第一部分 构建工具
  4. 第1章 用Ant设置项目
  5. 1.1 构建过程中的Ant
  6. 1.2 安装Ant
  7. 1.3 Ant概述
  8. 1.4 在Ant中编译Java代码
  9. 1.5 使用属性自定义构建脚本
  10. 1.6 在Ant中运行单元测试
  11. 1.7 用Javadoc生成文档
  12. 1.8 应用程序打包
  13. 1.9 部署应用程序
  14. 1.10 引导构建脚本
  15. 1.11 用Maven任务在Ant中使用Maven依赖
  16. 1.12 在Eclipse中使用Ant
  17. 1.13 在NetBeans中使用Ant
  18. 1.14 用XMLTask操作XML
  19. 1.15 小结
  20. 第2章 用Maven 2设置项目
  21. 2.1 Maven和开发构建过程
  22. 2.2 Maven和Ant
  23. 2.3 安装Maven
  24. 2.4 声明式构建和Maven项目对象模型
  25. 2.5 理解Maven 2的生命周期
  26. 2.6 Maven目录结构
  27. 2.7 根据环境配置Maven
  28. 2.8 Maven 2中的依赖管理
  29. 2.9 用MvnRepository查找依赖
  30. 2.10 项目继承和聚合
  31. 2.11 使用原型(Archetype)创建项目模板
  32. 2.12 编译代码
  33. 2.13 测试代码
  34. 2.14 打包和部署应用程序
  35. 2.15 使用Cargo部署应用程序
  36. 2.16 在Eclipse中使用Maven
  37. 2.17 在NetBeans中使用Maven
  38. 2.18 使用插件定制构建过程
  39. 2.19 用Archiva设置企业仓库
  40. 2.20 使用Artifactory设置企业仓库
  41. 2.21 在Maven中使用Ant
  42. 2.22 高级原型
  43. 2.23 使用组件
  44. 第二部分 版本控制工具
  45. 第3章 用CVS设置版本控制
  46. 3.1 CVS概述
  47. 3.2 设置CVS仓库
  48. 3.3 在CVS中创建新项目
  49. 3.4 检出项目
  50. 3.5 处理文件 —— 更新和提交
  51. 3.6 解决仓库锁定问题
  52. 3.7 使用关键字替换
  53. 3.8 处理二进制文件
  54. 3.9 CVS标记
  55. 3.10 在CVS中创建分支
  56. 3.11 从分支中合并更改
  57. 3.12 查看更改历史
  58. 3.13 还原更改
  59. 3.14 在Windows中使用CVS
  60. 第4章 用Subversion设置版本控制
  61. 4.1 Subversion概述
  62. 4.2 安装Subversion
  63. 4.3 Subversion仓库类型
  64. 4.4 设置Subversion仓库
  65. 4.5 设置新的Subversion项目
  66. 4.6 检出工作副本
  67. 4.7 将现有文件导入到Subversion
  68. 4.8 理解Subversion仓库的URL
  69. 4.9 使用文件
  70. 4.10 查看当前状态:Status命令
  71. 4.11 解决冲突
  72. 4.12 使用标记、分支和合并
  73. 4.13 回滚到以前的修订版本
  74. 4.14 对二进制文件使用文件锁定
  75. 4.15 打破和窃取锁定
  76. 4.16 用svn:needs-lock属性设置锁定文件为只读
  77. 4.17 使用属性
  78. 4.18 Subversion中的更改历史记录:日志和Blame命令
  79. 4.19 用svnserve设置Subversion服务器
  80. 4.20 设置安全的svnserve服务器
  81. 4.21 设置支持WebDAV/DeltaV的Subversion服务器
  82. 4.22 设置安全的WebDAV/DeltaV服务器
  83. 4.23 用钩子脚本定制Subversion
  84. 4.24 将Subversion安装为Windows服务
  85. 4.25 备份和还原Subversion仓库
  86. 4.26 在Eclipse中使用Subversion
  87. 4.27 在NetBeans中使用Subversion
  88. 4.28 在Windows中使用Subversion
  89. 4.29 缺陷跟踪和变更控制
  90. 4.30 在Ant中使用Subversion
  91. 4.31 小结 
  92. 第三部分 持续集成
  93. 第5章 用Continuum设置持续集成服务器
  94. 5.1 Continuum概述
  95. 5.2 安装Continuum服务器
  96. 5.3 手工启动和停止服务器
  97. 5.4 检查服务器状态
  98. 5.5 以Verbose模式运行Continuum服务器
  99. 5.6 添加项目组
  100. 5.7 添加Maven项目
  101. 5.8 添加Ant项目
  102. 5.9 添加外壳脚本项目
  103. 5.10 管理项目构建
  104. 5.11 管理用户
  105. 5.12 设置通知方法
  106. 5.13 配置和制订构建计划
  107. 5.14 调试构建
  108. 5.15 配置Continuum邮件服务器
  109. 5.16 配置Continuum网站端口
  110. 5.17 用Continuum自动生成Maven网站
  111. 5.18 配置手工构建任务
  112. 5.19 小结
  113. 第6章 用CruiseControl设置持续集成服务器
  114. 6.1 CruiseControl概述
  115. 6.2 安装CruiseControl
  116. 6.3 配置Ant项目
  117. 6.4 用Publisher(发布器)通知开发人员
  118. 6.5 在CruiseControl中设置Maven 2项目
  119. 6.6 CruiseControl操作面板
  120. 6.7 第三方工具
  121. 6.8 小结
  122. 第7章 LuntBuild——基于Web的持续集成服务器
  123. 7.1 LuntBuild概述
  124. 7.2 安装LuntBuild
  125. 7.3 配置LuntBuild服务器
  126. 7.4 添加项目
  127. 7.5 为版本编号使用项目变量
  128. 7.6 构建结果诊断
  129. 7.7 与Eclipse一起使用LuntBuild
  130. 7.8 在Luntbuild中使用Cobertura报告测试覆盖
  131. 7.9 将Luntbuild与Maven集成
  132. 7.10 小结
  133. 第8章 用Hudson持续集成
  134. 8.1 Hudson概述
  135. 8.2 安装Hudson
  136. 8.3 管理Hudson的主目录
  137. 8.4 安装升级
  138. 8.5 配置Hudson
  139. 8.6 添加新构建任务
  140. 8.7 组织作业
  141. 8.8 监控构建
  142. 8.9 查看和提升特定构建
  143. 8.10 管理用户
  144. 8.11 认证与安全
  145. 8.12 查看更改
  146. 8.13 Hudson插件
  147. 8.14 记录测试结果
  148. 8.15 记录代码度量
  149. 8.16 报告代码覆盖
  150. 第9章 用Openfire设置即时消息平台
  151. 9.1 开发项目中的即时消息软件
  152. 9.2 安装Openfire
  153. 9.3 在Openfire上设置用户账户
  154. 9.4 认证外部数据库中的用户
  155. 9.5 针对POP3服务器认证用户
  156. 9.6 用群聊天召开虚拟团队会议
  157. 9.7 用Openfire插件扩展功能
  158. 9.8 与Continuum一起使用Openfire
  159. 9.9 与CruiseControl一起使用Openfire
  160. 9.10 与Luntbuild一起使用Openfire
  161. 9.11 使用Smack API从Java应用程序中发送Jabber消息
  162. 9.12 用Smack API检测用户是否在线
  163. 9.13 使用Smack API接收消息
  164. 第四部分 单元测试
  165. 第10章 用JUnit测试代码
  166. 10.1 JUnit 3.8和JUnit 4
  167. 10.2 用JUnit 4进行单元测试
  168. 10.3 设置和优化单元测试用例
  169. 10.4 用Timeout进行简单性能测试
  170. 10.5 轻松检查异常
  171. 10.6 使用带参数的测试
  172. 10.7 使用assertThat和Hamcrest库
  173. 10.8 JUnit 4的理论机制
  174. 10.9 与Maven 2一起使用JUnit 4
  175. 10.10 与Ant一起使用JUnit 4
  176. 10.11 在Ant中有选择地运行JUnit 4测试
  177. 10.12 集成测试
  178. 10.13 在Eclipse中使用JUnit 4
  179. 第11章 用TestNG进行下一代测试
  180. 11.1 TestNG概述
  181. 11.2 用TestNG创建简单单元测试
  182. 11.3 定义TestNG测试套件
  183. 11.4 Eclipse的TestNG插件
  184. 11.5 在Ant中使用TestNG
  185. 11.6 与Maven 2一起使用TestNG
  186. 11.7 管理测试生命周期
  187. 11.8 使用测试组
  188. 11.9 管理依赖
  189. 11.10 并行测试
  190. 11.11 测试参数和数据驱动的测试
  191. 11.12 检查异常
  192. 11.13 处理部分失败
  193. 11.14 重新运行失败的测试
  194. 第12章 用Cobertura最大化测试覆盖
  195. 12.1 测试覆盖
  196. 12.2 从Ant中运行Cobertura
  197. 12.3 检查TestNG测试的代码覆盖
  198. 12.4 理解Cobertura报告
  199. 12.5 实施高水平代码覆盖
  200. 12.6 在Maven中生成Cobertura报告
  201. 12.7 将覆盖测试集成到Maven构建过程中
  202. 12.8 Eclipse中的代码覆盖
  203. 12.9 小结
  204. 第五部分 集成、功能、负载和性能测试
  205. 第13章 用StrutsTestCase测试Struts应用程序
  206. 13.1 概述
  207. 13.2 测试Struts应用程序
  208. 13.3 StrutsTestCase概述
  209. 13.4 使用StrutsTestCase 进行模拟测试
  210. 13.5 测试Struts错误处理
  211. 13.6 定制测试环境
  212. 13.7 一级性能测试
  213. 13.8 小结
  214. 第14章 用DbUnit进行数据库集成测试
  215. 14.1 引言
  216. 14.2 概述
  217. 14.3 DbUnit的结构
  218. 14.4 示例应用程序
  219. 14.5 准备数据库
  220. 14.6 验证数据库
  221. 14.7 替换值
  222. 14.8 其他数据集格式
  223. 14.9 处理自定义数据类型
  224. 14.10 其他应用
  225. 第15章 用JUnitPerf进行性能测试
  226. 15.1 JUnitPerf概述
  227. 15.2 用TimedTest测量性能
  228. 15.3 用LoadTest模拟负载
  229. 15.4 对非线程安全的测试进行负载测试
  230. 15.5 在Ant中分离性能测试和单元测试
  231. 15.6 在Maven中分离性能测试和单元测试
  232. 第16章 用JMeter进行负载和性能测试
  233. 16.1 概述
  234. 16.2 安装JMeter
  235. 16.3 测试简单的web应用程序
  236. 16.4 组织测试用例
  237. 16.5 记录和显示测试结果
  238. 16.6 使用JMeter代理服务器记录测试用例
  239. 16.7 使用变量进行测试
  240. 16.8 在多台计算机上进行测试
  241. 第17章 用SoapUI测试Web服务
  242. 17.0 概述
  243. 17.1 SoapUI概述
  244. 17.2 安装SoapUI
  245. 17.3 安装本地web服务
  246. 17.4 用SoapUI测试web服务
  247. 17.5 用SoapUI进行负载测试
  248. 17.6 从命令行运行SoapUI
  249. 17.7 从Ant中运行SoapUI
  250. 17.8 从Maven中运行SoapUI
  251. 17.9 持续测试
  252. 17.10 小结
  253. 第18章 用Sun JDK工具监视和分析Java应用程序的性能
  254. 18.1 Sun JDK性能分析和监视工具
  255. 18.2 用jConsole连接并监视Java应用程序
  256. 18.3 用jConsole监视远程Tomcat应用程序
  257. 18.4 用JDK工具检测和识别内存泄露
  258. 18.5 用堆转储、jmap和jhat诊断内存泄露
  259. 第19章 在Eclipse中分析Java应用程序的性能
  260. 19.1 在集成开发环境中分析应用程序性能
  261. 19.2 Eclipse测试和性能工具平台
  262. 19.3 安装TPTP
  263. 19.4 TPTP和Java 6
  264. 19.5 使用TPTP进行基本性能分析
  265. 19.6 用基本内存分析结果分析内存使用
  266. 19.7 分析执行时间
  267. 19.8 显示代码覆盖统计
  268. 19.9 使用过滤器优化结果
  269. 19.10 分析web应用程序的性能
  270. 19.11 小结
  271. 第20章 测试用户界面
  272. 20.1 概述
  273. 20.2 用Selenium测试web应用程序
  274. 20.3 用FEST测试Swing图形用户界面
  275. 20.4 小结
  276. 第六部分 质量度量工具
  277. 第21章 用Checkstyle检测和实施编码标准
  278. 21.1 用Checkstyle实施编码标准
  279. 21.2 在Eclipse中使用Checkstyle
  280. 21.3 在Eclipse中定制Checkstyle规则
  281. 21.4 使用XML配置文件定制Checkstyle规则
  282. 21.5 定制Checkstyle:可舍弃和使用的常见规则
  283. 21.6 用Checkstyle定义源代码文件头规则
  284. 21.7 禁用Checkstyle测试
  285. 21.8 与Ant一起使用Checkstyle
  286. 21.9 与Maven一起使用Checkstyle
  287. 第22章 用PMD预先检测错误
  288. 22.1 PMD和静态代码分析
  289. 22.2 在Eclipse中使用PMD
  290. 22.3 在Eclipse中配置PMD规则
  291. 22.4 PMD规则集
  292. 22.5 编写PMD规则集
  293. 22.6 在Eclipse中生成PMD报告
  294. 22.7 禁用PMD规则
  295. 22.8 用CPD检测剪切和粘贴
  296. 22.9 在Ant中使用PMD
  297. 22.10 在Maven中使用PMD
  298. 第23章 用FindBugs预先检测错误
  299. 23.1 FindBugs:专业的程序错误检测工具
  300. 23.2 在Eclipse中使用FindBugs
  301. 23.3 用FindBugs过滤器有选择地禁用规则
  302. 23.4 使用FindBugs注释
  303. 23.5 在Ant中使用FindBugs
  304. 23.6 在Maven中使用FindBugs
  305. 23.7 小结
  306. 第24章 检查结果——用Jupiter进行半自动化代码评审
  307. 24.1 Jupiter概述——用于Eclipse的代码评审工具
  308. 24.2 在Eclipse中安装Jupiter
  309. 24.3 理解Jupiter的代码评审流程
  310. 24.4 个人代码审查
  311. 24.5 配置
  312. 24.6 设置默认配置值
  313. 24.7 单独评审
  314. 24.8 团队评审
  315. 24.9 返工阶段
  316. 24.10 Jupiter的后台处理
  317. 24.11 小结
  318. 第25章 用Mylyn突出工作重点
  319. 25.1 Mylyn概述
  320. 25.2 安装Mylyn
  321. 25.3 跟踪任务和问题
  322. 25.4 与任务仓库交互
  323. 25.5 用上下文管理将工作重点集中在任务上
  324. 25.6 使用Eclipse更改集
  325. 25.7 与其他开发人员共享上下文
  326. 25.8 小结
  327. 第26章 监视构建统计信息
  328. 26.1 概述
  329. 26.2 QALab
  330. 26.3 用StatSCM度量源代码管理
  331. 26.4 在Ant中用StatSVN提供统计信息
  332. 第七部分 问题管理工具
  333. 第27章 Bugzilla
  334. 27.1 Bugzilla概述
  335. 27.2 安装Bugzilla
  336. 27.3 设置Bugzilla环境
  337. 27.4 管理用户账户
  338. 27.5 使用用户组限制访问
  339. 27.6 配置产品
  340. 27.7 用里程碑跟踪进度
  341. 27.8 用分类管理产品组
  342. 27.9 搜索程序错误
  343. 27.10 创建新程序错误
  344. 27.11 Bugzilla程序错误的生命周期
  345. 27.12 安排通知(Whining)
  346. 27.13 在Bugzilla中定制字段
  347. 27.14 小结
  348. 第28章 Trac——轻量级项目管理
  349. 28.1 Trac概述
  350. 28.2 安装Trac
  351. 28.3 设置Trac项目
  352. 28.4 在独立服务器上运行Trac
  353. 28.5 将Tracd设置为Windows服务
  354. 28.6 在Apache服务器上安装Trac
  355. 28.7 管理Trac网站
  356. 28.8 管理用户账户
  357. 28.9 剪裁Trac网站:使用Wiki功能
  358. 28.10 使用Trac Ticket管理系统
  359. 28.11 从Subversion中更新Trac问题
  360. 28.12 定制Trac Ticket的字段
  361. 28.13 设置电子邮件通知
  362. 28.14 使用Trac查询和报告
  363. 28.15 用Trac路线图和时间线管理进度
  364. 28.16 浏览源代码库
  365. 28.17 使用RSS和ICalendar
  366. 28.18 使用Python定制wiki页面
  367. 28.19 小结
  368. 第八部分 技术文档工具
  369. 第29章 用Maven 2项目网站进行团队沟通
  370. 29.1 作为沟通工具的Maven 2项目网站
  371. 29.2 设置Maven网站项目
  372. 29.3 将报告集成到网站中
  373. 29.4 创建专用Maven网站项目
  374. 29.5 定义网站框架
  375. 29.6 Maven网站生成架构
  376. 29.7 使用代码片断(Snippet)
  377. 29.8 定制网站外观
  378. 29.9 发布网站
  379. 第30章 自动生成技术文档
  380. 30.1 概述
  381. 30.2 用SchemaSpy直观查看数据库结构
  382. 30.3 用Doxygen生成源代码文档
  383. 30.4 用UmlGraph在Javadoc中嵌入UML图表
  384. 30.5 小结
  385. 参考资料
书名:JAVA开发超级工具集
作者:John Ferguson Smart
译者:张文波 等译
国内出版社:清华大学出版社
出版时间:2009年11月
页数:762
书号:978-7-302-20971-3
原版书出版商:O'Reilly Media
John Ferguson Smart
 
John Ferguson Smart,Wakaleo咨询的主管,帮助一些公司优化了他们的Java开发实践和基础架构。他提供一些在敏捷开发和测试实践上的培训和指导,比如持续集成、测试驱动开发、构建自动化和持续部署。
 
 
本书封面图案是一台钻床,由于其高精度的钻孔能力,它是工厂的必需工具。钻床由底座、立柱、工作台、主轴和钻头组成,它通常由异步电机驱动。使用钻床而不是手钻有一些好处:更容易钻入工件;齿条齿轮上的控制杆控制着钻轧头和主轴的移动,这为操作者提供了很大的机械增益;可以将钻床安装在架台或固定到工作台上,这使操作更加安全;主轴相对于工作台的角度是固定的,这使操作者能够精确地反复钻孔。
本书封面照片由Frank Deras拍摄。