Ant无法识别类路径

时间:2011-06-30 10:35:19

标签: java ant classpath javac

我看不出为什么这个Ant任务失败了:

<javac srcdir="src" destdir="bin" verbose="true" classpath="lib/*;${MyCommons.proj.path}/MyCommons.jar" />

我的罐子都在lib中,加上一个外部罐子。当我将鼠标悬停在类路径部分时,eclipse显示所有jar文件都被此配置识别。

在编译时,我得到100个无法找到此包或符号的错误(它没有找到罐子)。

[javac] Compiling 51 source files to C:\MyProjects\MyCommons\bin
[javac] C:\MyProjects\MyCommons\src\com\proxyandvpn\datamodel\Notification.java:3: package org.joda.time does not exist
[javac] import org.joda.time.DateTime;
[javac]                     ^
[javac] C:\MyProjects\MyCommons\src\com\proxyandvpn\datamodel\Transaction.java:5: package org.joda.time does not exist
[javac] import org.joda.time.DateTime;

我已经尝试了我能找到的每种格式的类路径,classpathref,嵌入式,文件集,文件列表等大约一个小时。

有没有人看到错误?


在此次通话之前,我打电话给

<ant target="compile" dir="/some/other/project"/>

删除它允许javac命令成功编译。

2 个答案:

答案 0 :(得分:3)

你应该尝试这个(没有自己跑,但我觉得它有效):

<path id="some.classpath">
    <fileset dir="lib">
        <include name="*.jar"/>
    </fileset>
    <pathelement location="${MyCommons.proj.path}/MyCommons.jar"/>
</path>

然后

<javac srcdir="src" destdir="bin" verbose="true">
    <classpath refid="some.classpath"/>
</javac>

如果有错误,请将其放入评论中。我会纠正它。

答案 1 :(得分:1)

我遇到了完全相同的问题。这对我有所帮助:

<ant target="compile" dir="/some/other/project" inheritAll="false"/>