Ant中的ClassPath用于Javac任务

时间:2009-08-11 13:37:01

标签: ant javac

我有以下ant文件来构建。但不幸的是

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

我在路径元素中指定的LIB目录中有相应的jar文件。然而它给出了编译错误,包不存在,因为它看不到我的JAR文件。

你能否指出我正在做的错误,正确地包括那个罐子?

2 个答案:

答案 0 :(得分:4)

很难说。我看不出任何明显的错误。

此处的所有示例:http://ant.apache.org/manual/Types/fileset.html使用:

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

而不仅仅是“* .jar”,但只要.jar文件直接位于\ WebContent \ WEB-INF \ classes中,你看起来应该没问题。

答案 1 :(得分:2)

此行应指向您的罐子

的位置
<property name="classpath" value="${basesrc.dir}\WebContent\WEB-INF\classes"/>

可能

<property name="classpath" value="${basesrc.dir}\WebContent\WEB-INF\lib"/>