While I'm digging around through Ant build scripts today, here's a sample Ant target I created that demonstrates how to compile a Java program, while also showing a few other things, including how to exclude your JUnit tests during the compile process.
This particular script happened to be used for building a Swing application, but it can really be used to build any Java application, command-line based or other.
Here's the source code for my Ant compile target:
<target name="compile" depends="clean-classes-dir">
  <javac destdir="classes" source="1.5" >
    <src path="src"/>
    <exclude name="**/Test*.java"/>
    <classpath refid="class.path"/>
  </javac>
  <copy todir="classes">
    <fileset dir="src">
      <include name="**/*.gif"/>
      <include name="**/*.jpg"/>
      <include name="**/*.png"/>
    </fileset>
  </copy>
</target>
Description
Here's a brief description of what this Ant target does:
- 
		The first part of the script runs the Ant javactask.
- 
		This task compiles all the files found in the srcdirectory, excluding all files matching the naming patterTest*.java. By convention, I named all my unit test classes this way, so I am able to exclude them in the compiling process.
- 
		When compiling, I set the classpath using the class.pathvariable, which I created earlier in my build script.
- 
		After the javactask executes successfully, I copy a bunch of image files from thesrcdirectory structure to theclassesfolder structure. (This is a collection of images that are used by my application.)
Building the classpath
I mentioned that earlier in my build script I created the variable named class.path. For the purpose of completeness, I thought I better include the target I created that builds this classpath variable. Here's the source code for that part of my build process:
<path id="class.path">
  <fileset dir="lib">
    <include name="**/*.jar"/>
    <include name="**/*.zip"/>
  </fileset>
</path>
As you can see, this segment of code builds a variable named class.path based on all the jar and zip files that are in my project's lib folder.










