Multiproject Support


Multiproject Support

One of the nicer (and newer ) features of CruiseControl is support for multiple projects. There are two aspects to this: support for multiple projects within a CruiseControl server instance (i.e., in the configuration file), and support for multiple projects within the Web application.

By defining multiple projects within a single CruiseControl instance, you are explicitly catering for a single server building two or more projects. While there is a limit on how many actively developed projects a CruiseControl instance can effectively manage, this solution works very well for projects with relatively low activity (such as projects in "maintenance" mode).

start sidebar
Resource Management

A single CruiseControl instance cannot effectively serve a large number of active projects because it can build only one at a time. Consequently, the amount of time that developers will have to wait before a build result is increased, possibly quite significantly. This issue can be addressed somewhat by having multiple instances per machine, but resource limits on the server will still pose a hard limit. It is difficult, for example, for even a four-CPU server to build eight projects concurrently. Nor will the addition of multiple build threads to CruiseControl address this issue. The solution will be a distributed build system ”far from an easy task.

end sidebar
 

One nice feature of defining multiple projects in the one configuration file is to be able to have builds of one project trigger other builds, via the BuildStatus source control component. This approach allows projects to be updated when common components change, promoting reuse between projects and a core set of common code.

The CruiseControl reporting service provides support for multiple projects as well. As noted in the installation section, the Web application is provided with a path to a log directory, minus the project name . This is because the Web application assumes that all the directories beneath the log directory are distinct projects. The Web application provides a nice summary page so that the state of all the projects can be seen at a glance

If you have multiple CruiseControl services, there is no reason why they cannot save their log files into the same base directory. This allows you to use one Web application to report on multiple CruiseControl services. You can even have the CruiseControl services on different machines; they just need to be able to publish their logs back to the reporting server.




Professional Java Tools for Extreme Programming
Professional Java Tools for Extreme Programming: Ant, XDoclet, JUnit, Cactus, and Maven (Programmer to Programmer)
ISBN: 0764556177
EAN: 2147483647
Year: 2003
Pages: 228

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net