Targets

According to the project structure shown in Figure 1, each project directory should contain a build file that at least supports the standard targets defined for the type to which it belongs. There are mainly two build file types:

  1. Master build file

  2. Slave build file

A master build file provides targets for creating zip archives, installing artifacts, generating documentation, and of course, building the project itself. But most of the times, building a project means building a number of subprojects, which are not built directly by the master build file. Instead, the master build file just delegates to one or more slave build files. Normally, there is only one master build file per project, and it resides in the project's top directory. Master build files should at least support the targets described in Table 1.

A slave build file provides the targets for building and testing a subproject. Slave build files should function either when processed directly by invoking NAnt from the location where they reside, or when called through the master build file or any other slave build file. Slave build files should at least support the targets described in Table 2.

Appendix A, Build File Examples provides an example for each build file type discussed in this section.