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
<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>
Here's a brief description of what this Ant target does:
The first part of the script runs the Ant
This task compiles all the files found in the
srcdirectory, excluding all files matching the naming patter
Test*.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.
javactask executes successfully, I copy a bunch of image files from the
srcdirectory structure to the
classesfolder 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