我是使用ANT的新手,并尝试使用Eclipse 3.5在构建中包含第三方jar。我不断在编译中遇到“找不到符号”的错误,所以显然它没有考虑这两个罐子。如果有人能告诉我出错的地方,或建议另一条路线,我将不胜感激。
下面的JarPath是Eclipse工作区中项目的路径。它在路径中尝试了'/'和'\',但都不重要。
<?xml version="1.0" ?>
<project default="main">
<property name="env.JAVA_HOME" location="C:\Program Files\Java\jdk\bin\javac.exe"/>
<property name="jars.dir" location="JarPath"/>
<target name="main" depends="compile, compress" description="Main target">
<echo>
Building the .jar file.
</echo>
</target>
<target name="compile" description="Compilation target">
<javac srcdir="." fork="yes" executable="${env.JAVA_HOME}"/>
<classpath>
<pathelement location="${jars.dir}/A.jar"/>
<pathelement location="${jars.dir}/B.jar"/>
</classpath>
</target>
<target name="compress" description="Compression target">
<jar jarfile="MyJar.jar" basedir="." includes="*.class" />
</target>
</project>
答案 0 :(得分:4)
我总是在classpath元素中使用嵌套的fileset元素。您可以指定特定文件或使用globbing。它应该看起来像这样:
<classpath id="classpath" description="The default classpath.">
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="jaxp.jar"/>
<include name="crimson.jar"/>
<include name="ojdbc14.jar"/>
</fileset>
</classpath>
您也可以将include元素用于glob,即
<include name="*.jar/>
所以你可以包括任何罐子。
答案 1 :(得分:0)
我认为这也有效。 “classpath”应该放入“javac”
<target name="compile" description="Compilation target">
<javac srcdir="." fork="yes" executable="${env.JAVA_HOME}">
<classpath>
<path location="${jars.dir}/A.jar"/>
<path location="${jars.dir}/B.jar"/>
</classpath>
</javac>
</target>