Ant has emerged as the preferred building tool for Java developers, automating tedious compilation, test, and code management. Many Java developers are aware of Ant but there is little documentation to assist in getting started with the Ant tool. Even experienced developers who already use some of the features of the Ant tool, struggle with the more advanced aspects. This book will educate those devlopers in these more advanced topics, and help them get more out of the tool. The Ant Developer's Handbook begins with a rapid introduction to obtaining, installing, and configuring Ant and covers all major feature sets and use practices.
Ant is a cross-platform build and configuration management tool. It is written in Java, and uses XML as its file format, thereby allowing entire development teams to share Ant build files, regardless of the operating system each developer is using. Ant can perform nearly any common configuration management function, including:
(NOTE: Each chapter concludes with a Summary.)
1. Introduction to Ant.
In the Beginning. The First Ant Project. Ant Terminology. Should I Use Ant?
How to Get Ant. How to Install Ant. A Tour of Ant with a Small Exercise.
Developing in a Standard Directory Tree. Creating Standard Ant Targets and What They Should Do. Exploring Ant Data Types. Listeners and Loggers. Predefined Properties. The Ant Command Line.
Common Attributes of All Tasks. <ant>. <antcall>. <antstructure>. <apply>/<execon>. <available>. <basename>. <buildnumber>. <Bunzip2>. <BZip2>. <checksum>. <chmod>. <concat>. <condition>. <Copy>. <copydir>. <copyfile>. <cvs>. <cvschangelog>. <cvspass>. <cvstagdiff>. <delete>. <deltree>. <dependset>. <dirname>. <ear>. <echo>. <exec>. <fail>. <filter>. <fixcrlf>. <genkey>. <get>. <gunzip>. <gzip>. <input>. <jar>. <java>. <javac>. <javadoc> and <javadoc2>. <loadFile>. <loadproperties>. <mail>. <manifest>. <mkdir>. <move>. <parallel> and <sequential>. <patch>. <pathconvert>. <property>. <record>. <rename>. <replace>. <rmic>. <sequential>. <signjar>. <sleep>. <sql>. <style>. <tar>. <taskdef>. <touch>. <tstamp>. <typedef>. <Unjar>, <Untar>, <Unwar>, <Unzip>. <uptodate>. <waitfor>. <war>. <xmlproperty>. <xslt>. <zip>.
Additional Resources for Ant. ANTLR. <cab>. <depend>. <echoproperties>. <ftp>. <icontract>. <propertyfile>. <javacc>. <jjtree>. <javah>. <jspc>. <junit>. <junitreport>. <replaceregexp>. <setproxy>. <sound>. <splash>. <telnet>. <xmlvalidate>.
Matching Class to Source. Life Cycle of a Task. An Informal Contract for a Custom Task. Requirements for ClassToSource. An Implementation for ClassToSource. Adding Nested Elements to a Custom Task. Custom DataTypes. A Custom DataType for ClassToSource. Using a Predefined Data Type. Custom Listeners.
Common Debugging Techniques. Syntax Errors. Semantic Errors. Programmatic Errors. Ant Message Levels. Using a Java Debugger. Support Resources and Rules of Engagement. Common Problems and Solutions.
What Is End to End Building? Targets for EtE Builds.
The Large Sample Application. A Standard Build Environment. Decomposing the Build. Ant Properties. Standard Build Targets. Building the Channel Component. Building the Common Layer. Building the Chat Server. Building the Chat Client. A One-Shot Build of the ChatRoom Application. Some Benefits of Chaining Builds.
Ant 2. What Can I Do to Help?
Ant Farm for jEdit. AntRunner for JBuilder. Sun ONE Studio (AKA Forte for Java). Eclipse. CruiseControl. Control Center. IntelliJ IDEA 2.5.