Presents your JAVA E-NEWSLETTER for February 19, 2004 <-------------------------------------------> IMPLEMENTING CONTINUOUS BUILDS WITH CRUISECONTROL A nightly build process is an important part of any development team. Nightly builds, or continuous integration builds, help keep projects on course by identifying problems as soon as they occur. Continuous builds help you identify a number of problems, including cyclic dependencies, incompatible API changes, missing dependencies, and invalid code. Even though many programmers know that continuous builds are a good idea, they still don't use them--usually because it's hard. An automated, scheduled, robust, genuinely integrated build system that is capable of notifying someone when something goes wrong can be a complex and difficult process to implement. Until recently, your options for creating such a system consisted of growing your own build scripts or buying a commercial tool to take care of the chore for you. Enter CruiseControl. http://cruisecontrol.sourceforge.net/ CruiseControl is an open source Java application that makes creating a continuous build system easier. To setup CruiseControl, you create a couple of XML files that tell it (among other things) where your source code is and how to get to it. CruiseControl integrates with several source code control applications, monitors the repositories for changes on a scheduled basis, and creates new builds when necessary. One particularly nice feature of CruiseControl is how it communicates your builds' results. It's designed to make build results accessible via its own servlet and can also actively send its results via e-mail. Programmers have known for years that building software as it changes is a good idea, but, until now, it's been difficult to accomplish. Take a look at CruiseControl, and see if it can make your nightly build dreams a reality. David Petersheim is the Director of Application Development with Genscape, Inc. He designs and develops server-side applications to acquire and process real-time energy data. ----------------------------------------