我的javac
Ant 任务会产生如下所示的错误:
[javac] C:dpdevtrunkMyProductMyUnitTest.java:109: error: cannot find symbol
[javac] private MyClass createFactoryMock() throws Exception {
[javac] ^
[javac] symbol: class MyClass
[javac] location: class MyUnitTest
我以详细模式(ant -verbose test-compile
)运行任务,并在任务的类路径输出中找到MyClass
,由此我得出结论,类路径中存在MyClass
。
[javac] Compiling 9 source files to C:dpdevtrunkMyProducttemptest-build
[javac] Using modern compiler
[javac] Compilation arguments:
[javac] '-d'
[javac] 'C:dpdevtrunkMyProducttemptest-build'
[javac] '-classpath'
[javac] '[...]C:dpdevtrunkMyProducttempbuildMyProductMyClass.class[...]
还有什么(除了类路径问题)可能是导致错误的原因?
我通过更改解决了问题
<javac srcdir="${test}" destdir="temp/test-build" debug="${debug}" encoding="UTF-8">
<classpath>
[...]
<fileset dir="${build}"/>
</classpath>
</javac>
自
<javac srcdir="${test}" destdir="temp/test-build" debug="${debug}" encoding="UTF-8">
<classpath>
[...]
<pathelement location="${build}"/>
</classpath>
</javac>
让它指向存在 jar 的确切 jar 文件目录:
<path id="classpath">
<fileset dir="${main.jar}" includes="**/*.jar"/>
<!-- <pathelement location="${src.dir}" />-->
</path>
----在我的情况下,jar 文件存在于----
<property name="main.jar" value="jar"/>