Ant javac类线程不工作



尽管所需的jar位于类路径上,但compile目标中的javac任务失败了。谁能告诉我为什么会这样?

下面的错误是由于无法识别IOUtils.lineIterator()导致的。但是,commons-io-1.3.1.jar在构建路径上(在${app.lib.dir}中)。所以,构建失败是很奇怪的。

<target name="compile">
    <mkdir dir="${classes.dir}" />
    <javac destdir="${classes.dir}" debug="true" classpathref="dependency.path"
        excludes="/../security/**" >
        <src path="${java.src.dir}" />
    </javac>
</target>
<path id="dependency.path">
    <fileset dir="${spring.lib.dir}" includes="*.jar" />
    <fileset dir="${spring.depends.dir}" includes="**/*.jar" />
    <fileset dir="${app.lib.dir}" includes="*.jar" />
    <fileset dir="${tomcat.dir}/.." includes="**/*.jar" />
</path>
执行

ant -f build-dev.xml compile
Buildfile: C:..build-dev.xml compile:
    [mkdir] Created dir: C:..classes
    [javac] Compiling 348 source files to C:..classes
    [javac] C:..UploadUtil.java:132: cannot find symbol
    [javac] symbol  : method lineIterator(java.io.InputStream,java.lang.String)
    [javac] location: class org.apache.commons.io.IOUtils
    [javac]             Iterator<String> it = IOUtils.lineIterator(is, charSet);
    [javac]                                          ^
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 1 error
BUILD FAILED
C:..build-dev.xml:54: Compile failed; see the compiler error output for details.
Total time: 11 seconds

方法尝试

    令人惊讶的是,
  1. Eclipse正在毫无问题地构建项目。我在项目构建路径上有相同的jar集。我还在编译中排除了相同的源目录。
  2. 试图在源文件夹上使用javac可执行文件,但不确定如何在源代码目录结构上使用javac
  3. 我确信我所拥有的jar的版本具有类IOUtils,因为Eclipse在jar的内容中显示了它。

最可能的解释是包含类的jar不在类路径上。

我仔细检查了Maven Central,以防万一有一个名为"commons-io-1.3.1"的jar不包含这个类,但遗憾的是没有:

  • http://search.maven.org/ga搜索| | 1 | % 3 a % 22 commons-io % 20 - 22% % 20不是% 20 fc % % 22 org.apache.commons.io.ioutils % 22 3

因此,我建议您在构建中添加以下诊断目标,以便您可以确认jar实际上位于类路径上:

<target name="diagnostics">
    <pathconvert property="classpathProp" refid="dependency.path"/>
    <echo>Classpath is ${classpathProp}</echo>
</target>

相关内容

  • 没有找到相关文章

最新更新