This chapter looks in more detail at some best practices for using Ant on real projects. First I describe the use of property files to enable configuration of the build process depending on a user's role and requirements. I then describe how best to integrate Ant with IBM Rational ClearCase. Finally, I look at some general best practices for supporting the build process on large projects.
Aims of This Chapter
Apache Ant is a powerful build tool with significant built-in capabilities. However, a few capabilities and best practices stand out; they are described here. After reading this chapter, you will be able to
Understand what Ant property files are and how they can be used to make build scripts more maintainable.
Understand how to use Ant's capabilities to better integrate with IBM Rational ClearCase.
Implement Ant build files that support reuse and maintainability on large projects.
This chapter assumes that you are familiar with the basic concepts of Apache Ant that were discussed in Chapter 4, "Defining Your Build and Release Scripts."
Property Files
From the perspective of Chapter 4, an Ant build.xml file is a single centralized build file that defines a repeatable process for bringing together an application, usually producing some form of executable output. Although a single build.xmlfile can be enough to drive the build process, in practice it can quickly become large and unwieldy. In software development in general, it is recommended that you separate the data from the processes so that configuration changes can be made simply by focusing on and changing data alone. In Ant this is achieved through the use of property files. This section describes different uses of these property files:
Implementing a configurable build using default and build property files. These files contain properties that define the data for your build process, such as the compiler version, optimization settings, and so on.
Automating build numbering using build number property files. These files can be used to automate the generation of build numbers for applying labels or baselines.
Reusing prebuilt libraries using library property files. These files can be used to specify a set of library versions to build against.
I will start by looking at default and build property files.