下午写了一个ant脚本,打算让ant自动将项目中需要的类编译一下。Eclipse中编译没有任何问题,但是一运行ant脚本就报错,很多第三方的jar包不存在或者干脆找不到,实在让人百撕不得骑姐……
报错如下:
[javac] D:\eclipse\workspace\patch-installer\src\com\chinapower\updater\bpm\util\Check4Patch.java:7: 软件包 org.dom4j 不存在
[javac] import org.dom4j.Element;
[javac] ^
[javac] D:\eclipse\workspace\patch-installer\src\com\chinapower\updater\bpm\util\Check4Patch.java:10: 找不到符号
找不到jar包的错误很常见,一般都是classpath配置的不对。
隐约感觉到,肯定ant依赖的classpath有关系。上网查了一下,果然如此。
原来我们需要指定一下javac命令依赖的类库,下面给出一个模板ant脚本:
<path id="lib">
<fileset dir="E:\patch-installer\installer\lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="compile">
<javac srcdir="${srcDir}" destdir="${buildDir}" encoding="gbk">
<classpath refid="lib"></classpath>
</javac>
</target>
指定好之后,可以正常编译通过。
例如我的项目:必须把依赖的模块配置进去
<target name="build-webservices" depends="build-system,build-organization">
<ant antfile="build-webservices.xml" inheritall="false" dir="webservices"/>
</target>