ClassPath in Ant for Javac task

antjavac

I have following ant file to build. But unfortunately

<project default="build.deploy.start" basedir=".">

    <property name="target.dir" value="C:\tom\webapp\"/>
    <property name="basesrc.dir" value="c:\SimpleChat\"/>   
    <property name="classes.target" value="${basesrc.dir}\WebContent\WEB-INF\classes"/>
    <property name="src.dir" value="${basesrc.dir}\src"/>
    <property name="classpath" value="${basesrc.dir}\WebContent\WEB-INF\classes"/>

    <!-- Classpath for the project -->  
    <path id="master-classpath">
      <fileset dir="${classpath}">
        <include name="*.jar"/>
      </fileset>
    </path>

    <!-- init method which will ensure that all directories exists before we start building/deploying-->
    <target name="init">
        <mkdir dir="${target.dir}\js"/>
        <mkdir dir="${target.dir}\images"/>
        <mkdir dir="${target.dir}\pages"/>
        <mkdir dir="${target.dir}\WEB-INF\lib"/>
        <mkdir dir="${target.dir}\WEB-INF\classes"/>
    </target>

    <!--To build an application so that files can be deloyed-->
    <target name="build" depends="init">
        <javac srcdir="${src.dir}" destdir="${classes.target}">
            <classpath refid="master-classpath"/>
        </javac>
    </target>
</project>

I have respective jar files in the LIB directory specified in path element. and yet it gives compilation error that package does not exists as it cannot see my JAR file.

Can you please point out the mistake that I am doing to include that jar correctly?

Best Answer

Hard to tell. I can't see any obvious mistakes.

All the examples here: http://ant.apache.org/manual/Types/fileset.html use:

<include name="**/*.jar"/>

instead of just "*.jar" as you have, but what you have looks like it should be ok so long as the .jar files are directly inside \WebContent\WEB-INF\classes.

Related Topic