Ant is the premiere build management tool for use in Java environments. Unlike traditional build management tools such as GNU Make, Ant is itself written in Java, is platform independent, and interfaces well with the utilities in Sun's Java software development kit (SDK). In addition to being platform independent, Ant is also independent of the integrated development environment (IDE) being used. IDE independence is important for open source projects (or other projects) in which the various developers might use different IDEs. Using Ant, Java developers can:
- Define build chunks, the results that they must produce, and the dependencies between them
- Automatically retrieve source code from source control systems such as PVCS
- Build applications by having Ant compile the necessary source files in the proper order
Ant build files are written using XML-a well-established standard-so programmers using Ant are not required to learn yet another scripting language. They will likely already know XML, and will be able to leverage that knowledge. Ant is an open source project, and part of the Jakarta project. Jakarta is Sun's open source reference implementation for the JSP and Servlets specifications, and is part of the Apache group's work
Dedication; Foreword; Preface; Structure of This Book; Audience; What You Should Know; Which Platform and Version; Conventions Used in This book; Comments and Questions; Acknowledgments; Chapter 1: Ant Jumpstart; 1.1 Files and Directories; 1.2 The Ant Buildfile; 1.3 Running Ant; 1.4 Ant Command-Line Reference; 1.5 Buildfile Outline; 1.6 Learning More; Chapter 2: Installation and Configuration; 2.1 The Distribution; 2.2 Installation; 2.3 Configuration; Chapter 3: The Buildfile; 3.1 Why XML?; 3.2 Ant Building Blocks; 3.3 An Example Project and Buildfile; 3.4 The Buildfile Execution Process; 3.5 AINASL: Ant Is Not a Scripting Language; 3.6 Buildfile Authoring Issues; Chapter 4: Ant DataTypes; 4.1 DataTypes Defined; 4.2 XML Attribute Conventions; 4.3 Argument DataType; 4.4 Environment DataType; 4.5 FileList DataType; 4.6 FileSet DataType; 4.7 PatternSet DataType; 4.8 FilterSet DataType; 4.9 Path DataType; 4.10 Mapper DataType; Chapter 5: User-Written Tasks; 5.1 The Need for Custom Tasks; 5.2 Ant’s Task Model; 5.3 The Task Life Cycle; 5.4 An Example Through Analysis: The jar Task; 5.5 Miscellaneous Task Topics; Chapter 6: User-Written Listeners; 6.1 The BuildEvent Class; 6.2 The BuildListener Interface; 6.3 An Example: XmlLogger; 6.4 The Parallel Problem; Chapter 7: Core Tasks; 7.1 Task Summary; 7.2 Common Types and Attributes; 7.3 Project and Target; 7.4 Core Task Reference; 7.5 ant; 7.6 antcall; 7.7 antstructure; 7.8 apply; 7.9 available; 7.10 chmod; 7.11 condition; 7.12 copy; 7.13 copydir; 7.14 copyfile; 7.15 cvs; 7.16 cvspass; 7.17 delete; 7.18 deltree; 7.19 dependset; 7.20 ear; 7.21 echo; 7.22 exec; 7.23 execon; 7.24 fail; 7.25 filter; 7.26 fixcrlf; 7.27 genkey; 7.28 get; 7.29 gunzip; 7.30 gzip; 7.31 jar; 7.32 java; 7.33 javac; 7.34 javadoc; 7.35 mail; 7.36 mkdir; 7.37 move; 7.38 parallel; 7.39 patch; 7.40 pathconvert; 7.41 property; 7.42 record; 7.43 rename; 7.44 replace; 7.45 rmic; 7.46 sequential; 7.47 signjar; 7.48 sleep; 7.49 sql; 7.50 style; 7.51 tar; 7.52 taskdef; 7.53 touch; 7.54 tstamp; 7.55 typedef; 7.56 unjar; 7.57 untar; 7.58 unwar; 7.59 unzip (also unjar and unwar); 7.60 uptodate; 7.61 war; 7.62 zip; Chapter 8: Optional Tasks; 8.1 Task Summary; 8.2 Optional Task Reference; 8.3 antlr; 8.4 blgenclient; 8.5 cab; 8.6 cccheckin; 8.7 cccheckout; 8.8 ccmcheckin; 8.9 ccmcheckintask; 8.10 ccmcheckout; 8.11 ccmcreatetask; 8.12 ccmreconfigure; 8.13 ccuncheckout; 8.14 ccupdate; 8.15 csc; 8.16 ddcreator; 8.17 depend; 8.18 ejbc; 8.19 ejbjar; 8.20 ftp; 8.21 icontract; 8.22 ilasm; 8.23 iplanet-ejbc; 8.24 javacc; 8.25 javah; 8.26 jdepend; 8.27 jjtree; 8.28 jlink; 8.29 jpcoverage; 8.30 jpcovmerge; 8.31 jpcovreport; 8.32 junit; 8.33 junitreport; 8.34 maudit; 8.35 mimemail; 8.36 mmetrics; 8.37 mparse; 8.38 native2ascii; 8.39 netrexxc; 8.40 p4change; 8.41 p4counter; 8.42 p4edit; 8.43 p4have; 8.44 p4label; 8.45 p4reopen; 8.46 p4revert; 8.47 p4submit; 8.48 p4sync; 8.49 propertyfile; 8.50 pvcs; 8.51 renameext; 8.52 rpm; 8.53 script; 8.54 sound; 8.55 starteam; 8.56 stylebook; 8.57 telnet; 8.58 test; 8.59 vsscheckin; 8.60 vsscheckout; 8.61 vssget; 8.62 vsshistory; 8.63 vsslabel; 8.64 wljspc; 8.65 wlrun; 8.66 wlstop; 8.67 xmlvalidate; The Future of Ant; Ant2; Ant1 RIP 2002?; Ant Solutions; Testing Library Availability; Cleaning Up Does More Than Keep Things Neat; Using Ant to Consolidate Libraries; Documenting the Buildfile’s Targets; Setting Properties Outside of the Buildfile; Using pathconvert; Usage Statements; Forking Processes; Using Cascading Projects and Buildfiles; Colophon;