Defining a Classpath
Problem
You want to define a classpath and reuse it throughout a buildfile.
Solution
Use the <path>
element to define the classpath
along with a unique ID. Then refer to the classpath using the ID.
Discussion
Example 3-5 shows how to define a classpath and refer
to it later from the javac
task.
Example 3-5. Reusing a classpath
<?xml version="1.0" encoding="UTF-8"?> <project name="Classpath Sample" default="compile" basedir="."> <!-- get an environment variable --> <property environment="env"/> <property name="tomcatHome" value="${env.TOMCAT_HOME}"/> <!-- define some directories --> <property name="dir.src" value="src"/> <property name="dir.build" value="build"/> <property name="dir.lib" value="lib"/><!-- Define a classpath for use throughout the buildfile -->
<path id="project.classpath">
<pathelement location="${dir.src}"/>
<!-- include Tomcat libraries -->
<fileset dir="${tomcatHome}/common/lib">
<include name="*.jar"/>
</fileset>
<!-- include our own libraries -->
<fileset dir="${dir.lib}">
<include name="*.jar"/>
</fileset>
</path>
<target name="clean"> <delete dir="${dir.build}"/> </target> <target name="prepare"> <mkdir dir="${dir.build}"/> </target> <target name="compile" depends="prepare"> <!-- use <pathconvert> to convert the path into a property --><pathconvert targetos="windows" property="windowsPath"
refid="project.classpath"/>
<!-- now echo the path to the console --> <echo>Windows path = ${windowsPath}</echo> <!-- Here is how to use the classpath ...
Get Java Extreme Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.