Apache Ant Best Practices | WebReference

Apache Ant Best Practices


Apache Ant Best Practices

Kevin A. Lee
Excerpted from IBM Rational® ClearCase®, Ant, and CruiseControl: The Java™ Developer's Guide to Accelerating and Automating the Build Process, published by IBM Press © 2006

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.