有优秀Java开发人员参与的项目肯定有快速、可重复、简单的构建。如果软件不能快速稳定地构建,就会浪费大量的时间和金钱,包括你自己的!
理解编译—测试—打包这一基本构建周期是确立良好构建流程的关键。毕竟,你不能测试还没编译的代码!
Maven将构建周期的概念发扬光大,扩展为在所有Maven项目中都能保持一致的项目周期。这种惯例优先(于配置)的方式对于大型软件团队非常有帮助,但有些项目可能需要更多的灵活性。
Maven还解决了依赖管理的问题,因为几乎所有项目都要依赖第三方类库,这个难题一直困扰着Java和开源世界。
把构建流程挂到CI环境中,开发人员就能得到迅捷无比的反馈,还可以毫无畏惧地快速合并修改。
Jenkins是一个流行的CI服务器,不仅能构建几乎所有类型的项目,还能通过它庞大的插件系统提供丰富的报告。假以时日,开发团队就能让Jenkins执行各种构建,覆盖范围可以从快速单元测试构建到系统集成构建。
Leiningen是Clojure项目的自然之选。它用一个非常清爽的构建和部署工具,把紧凑的TDD循环和REPL方式结合在了一起。
我们接下来会讨论快速Web开发,自从第一个基于Java的Web框架出现以来,大多数优秀的Java开发人员都曾为这一主题奋斗过。