我有下面的构建文件
<?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命令时,都会出现"类不存在"编译错误。我试过以下
<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>
然而,这些似乎都无法解决问题。我在这里做错了什么?
如果您想在类路径中播放多个JAR文件,我会使用<fileset>
而不是<pathelement>
:
Apache Ant文档中的示例
<classpath>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
...
</classpath>
您需要将classpath
或classpathref
属性与javac任务一起使用,例如:
<path id="classpath">
<fileset dir=".. lib dir.." includes="**/*.jar"/>
</path>
<javac srcdir="src" destdir="build/classes" classpathref="classpath">
或
<javac srcdir="src" destdir="build/classes">
<classpath refid="classpath" />
...