以下是我的蚂蚁脚本的简化版本(它有项目元素等)。
我是蚂蚁的新手,无法弄清楚为什么'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>
答案 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>