web-dev-qa-db-fra.com

Faire en sorte que Ant <javac> reconnaisse un chemin de classe

J'ai un fichier de construction Apache Ant avec un <javac> commande qui nécessite que quatre fichiers JAR spécifiques soient sur la génération classpath. J'ai essayé de faire ça:

<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>

… Mais aucun des fichiers spécifiés dans TSA.classpath semble apparaître. Comment inclure ces fichiers dans mon chemin de classe?

42
Paul Fisher

Voici un exemple d'un projet sur lequel je travaille actuellement. Je soupçonne que vous pouvez le modifier pour l'adapter à votre 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>
70
William Brendel

Essayer

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

ou

<javac ...>
    ...
    <classpath refid="TSA.classpath" />
</javac>
15
Joachim Sauer

Essaye ça:

 <classpath refid="TSA.classpath"/>
14
TofuBeer