如何在我的Ant构建中包含jar lib

时间:2016-01-10 16:57:12

标签: java ant jar

我有以下构建文件

 <?xml version="1.0" ?> 
<project name="ClientAdvisor" default="compress">

<target name="init">
    <mkdir dir="build/classes" />
    <mkdir dir="dist" />
</target>

<target name="compile" depends="init">
    <javac srcdir="src" destdir="build/classes">

    </javac>
</target>

<target name="compress" depends="compile">
        <jar destfile="dist/clientadvisor.jar" basedir="build/classes">

        </jar>
</target>


<target name="clean">
    <delete dir="build" />
    <delete dir="dist" />
</target>

</project>

我的lib文件夹中还有一个jar文件列表,用于编译我的源文件。然而,每次我运行ant命令时,我都会发现“Class”不存在&#39;编译错误。我试过以下

<target name="compile" depends="init">
    <javac srcdir="src" destdir="build/classes">
        **<classpath>
    <pathelement path="lib/*.jar"/>
</classpath>**

    </javac>
</target>


 <target name="compress" depends="compile">
        <jar destfile="dist/clientadvisor.jar" basedir="build/classes">
             **<zipgroupfileset dir="lib/" includes="**/*.jar" />**
        </jar>
</target>

但这似乎都无法解决问题。我在这做错了什么?

2 个答案:

答案 0 :(得分:2)

如果你想在类路径中播放多个JAR文件,我会使用<fileset>而不是<pathelement>

示例from Apache Ant documentation

<classpath>
      <fileset dir="lib">
        <include name="**/*.jar"/>
      </fileset>
      ...
</classpath>

答案 1 :(得分:1)

您需要将classpathclasspathref属性与javac task一起使用,如:

 <path id="classpath">
    <fileset dir=".. lib dir.." includes="**/*.jar"/>
</path>
 <javac srcdir="src" destdir="build/classes" classpathref="classpath">

OR

<javac srcdir="src" destdir="build/classes">
     <classpath refid="classpath" />
     ...
相关问题