必要な jar がクラスパスにあるにもかかわらず、ターゲットのjavac
タスクが失敗します。compile
なぜこれが起こっているのかを理解するのを手伝ってくれる人はいますか?
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
試みたアプローチ
- Eclipseは驚くべきことに、問題なくプロジェクトをビルドしています。プロジェクトのビルド パスに同じ jar のセットがあります。また、同じソース ディレクトリをコンパイルから除外しています。
- ソース フォルダでjavac実行可能ファイルを使用しようとしましたが、ソース コード ディレクトリ構造で javac を使用する方法がわかりません。
IOUtils
Eclipseはjarの内容にそれを表示するため、私が持っているjarのバージョンにはクラスがあると確信しています。