Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting Ant <javac> to recognise a classpath

I have an Apache Ant build file with a <javac> command that requires four specific JARs to be on the build classpath. I've tried to do this:

<project basedir=".." default="build_to_jar" name="Transnet Spectrum Analyzer">     <property environment="env"/>     <property name="src" value="src"/>     <property name="libsrc" value="library_sources" />     <property name="build" value="build"/>     <property name="dist" value="dist"/>     <property name="target" value="1.5"/>     <property name="libraries" value="./libraries"/>      <fileset dir="." id="TSA.classpath">         <include name="${libraries}/rxtx/RXTXcomm.jar" />         <include name="${libraries}/commons-logging-1.1.1.jar" />         <include name="${libsrc}/JCommon/jcommon-1.0.15.jar" />         <include name="${libsrc}/JFreeChart/jfreechart-1.0.12.jar" />     </fileset>      <target name="compile" depends="clean,init" description="compile the source " >          <echo>Compile from ${src} to ${build}</echo>          <javac destdir="${build}" source="${target}" target="${target}">             <compilerarg value="-Xlint:unchecked"/>             <src path="${src}"/>             <classpath path="TSA.classpath" />         </javac>     </target>      <!-- blah blah blah --> </project> 

…but none of the files specified in TSA.classpath appear to show up. How do I include these files in my classpath?

like image 391
Paul Fisher Avatar asked Apr 06 '09 19:04

Paul Fisher


People also ask

What is classpath in ant?

Ant - Classpaththe location attribute refer to a single file or directory relative to the project's base directory (or an absolute filename) the path attribute accepts colon- or semicolon-separated lists of locations.

What is includeAntRuntime in ant?

includeAntRuntime. Whether to include the Ant run-time libraries in the classpath. It is usually best to set this to false so the script's behavior is not sensitive to the environment in which it is run. No; defaults to yes , unless build.sysclasspath property is set.


2 Answers

Here's an example from a project I am currently working on. I suspect you can modify it to work for your situation.

<path id="master-classpath">   <fileset dir="${web.dir}/WEB-INF/lib">     <include name="*.jar"/>   </fileset>    <fileset dir="${appserver.lib}">     <include name="servlet*.jar"/>   </fileset>    <pathelement path="${build.dir}"/> </path>  ...  <javac destdir="${build.dir}">   <src path="${src.dir}"/>   <classpath refid="master-classpath"/> </javac> 
like image 143
William Brendel Avatar answered Sep 28 '22 20:09

William Brendel


Try

<javac ... classpathref="TSA.classpath"> 

or

<javac ...>     ...     <classpath refid="TSA.classpath" /> </javac> 
like image 36
Joachim Sauer Avatar answered Sep 28 '22 19:09

Joachim Sauer