包括第三方罐子ANT

时间:2009-08-14 17:42:20

标签: eclipse ant jar

我是使用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>

2 个答案:

答案 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>