ant javac找不到其他项目编译的类

时间:2013-04-30 11:12:33

标签: ant project javac

以下是我的蚂蚁脚本的简化版本(它有项目元素等)。

我是蚂蚁的新手,无法弄清楚为什么'compileTests'不能编译,而'compileFoo'却没有。

我得到的错误是'包不存在',因为compileTests项目中的类无法在compileFoo项目中找到编译的类,即使它们编译得很好,我可以在文件系统上看到它们它们的路径列在类路径中(我认为这是必要的吗?)

显然有一些基本的我不明白。有人可以帮忙解释一下吗?

<path id="build_classpath">
    <fileset dir="${other_required_jars}" includes="**/*.jar" />
    <fileset dir="${foo_build_location}" includes="**/*.class" />
</path>


<target name="compileFoo" description="compile">
    <javac srcdir="${foo_source_directory}\test-src" includeantruntime="false" destdir="${foo_build_location}" includes="**/*.java" excludes="" debug="on" optimize="off" deprecation="on" verbose="on">
        <classpath refid="build_classpath" />
    </javac>
</target>


<target name="compileTests" description="compile">
    <javac srcdir="${test_source_directory}\test-src" includeantruntime="false" destdir="${test_build_location}" includes="**/*.java" excludes="" debug="on" optimize="off" deprecation="on" verbose="on">
        <classpath refid="build_classpath" />
    </javac>
</target>

1 个答案:

答案 0 :(得分:3)

你的类路径错了。类路径不包含一组.class文件。它包含一组jar或目录,每个jar或目录包含一个包树的根。因此,类路径应该只包含一个元素:${foo_build_location}

<path id="build_classpath">
    <fileset dir="${other_required_jars}" includes="**/*.jar" />
    <pathelement location="${foo_build_location}"/>
</path>