This page last changed on Jun 24, 2005 by orogers.

The CruiseControl.NET server can be configured to manage the integration requirements for several projects concurrently. To do this, simply include the configuration for the different projects consecutively in the ccnet.config file.

<cruisecontrol>
     <project name="project1">
          ...
     </project>
     <project name="project2">
          ...
     </project>
</cruisecontrol>

If you use the default values for Project working directories, artifact directories, State Managers and Xml Log Publishers, this should work for you straightaway, but if not, note the following conditions:

  • Each project needs its own state file (see State Manager Blocks)
  • Each project must save build logs to a separate directory (see Xml Log Publisher)
  • Each project must have a separated build working directory (since builds are performed in parallel)
  • Each project must have a trigger that specifies what will cause a build to occur (see Trigger Blocks)

To configure reporting, read the Project Report Web Application section on Multiple Projects.

Splitting the ccnet.config file

It is possible to split your ccnet.config file into multiple smaller xml files. This can help you reduce some of the duplication in the configuration file by factoring out common elements to an external file. Currently, the main way to do this is to use DTD entities. The following example demonstrates how the configuration for two CCNet project project1 and project2 can be read in from separate files. The same approach should work at any level in the ccnet.config file.

<!DOCTYPE cruisecontrol [ 
	<!ENTITY project1 SYSTEM "file:project1.xml">
	<!ENTITY project2 SYSTEM "file:project2.xml">
]> 
<cruisecontrol>
  &project1;
  &project2;
</cruisecontrol>
Document generated by Confluence on Jun 26, 2005 17:22