This chapter began with a study of a useful standard development directory tree. You'll find lots of projects that use this format or one very close to it. Whatever directory structure you choose, remember to keep your source files separated from your binary output, and to place your source files in package-structure directories under your source folder.
Next, we covered the basic targets that every Ant build file you create will most likely have. We discussed the common names for these targets and what each target does. Simple examples of each target were provided.
We moved on to discuss the data types that Ant provides for filtering and selecting directories, files, and text. Combining these data types with the built-in and optional tasks you will learn about in Chapters 4 and 5 will greatly help you in your development.
Next up, we moved on to cover listeners and loggers, which enable you to change the status output from your Ant builds. Listeners are geared more toward those who want to write custom tasks and loggers (with the exception being the Log4j listener), whereas loggers can be used by anyone. Several loggers are provided, and each supplies a different set of output data. We then briefly discussed the properties that Ant predefines for you and how to access Java system properties.
Finally, we discussed the Ant command line and the different options and arguments that enable you to control how Ant does its work.