我有以下构建文件
<?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>
但这似乎都无法解决问题。我在这做错了什么?
答案 0 :(得分:2)
如果你想在类路径中播放多个JAR文件,我会使用<fileset>
而不是<pathelement>
:
示例from Apache Ant documentation
<classpath>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
...
</classpath>
答案 1 :(得分:1)
您需要将classpath
或classpathref
属性与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" />
...