我有以下文件结构:
ServerCode <- src , libs, bin
我正在尝试编译src中的所有代码。 Src在顶级和子目录中有几个.java文件。 libs包含构建项目所需的所有.jar文件。
我编写了以下build.xml但是当我尝试编译它时,编译器抛出错误找不到我所包含的库的符号错误。
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin" classpath="libs/*.jar">
</target>
</project>
答案 0 :(得分:1)
定义类路径以包含所有这样的jar
<target name="compile" depends="" description="compile the java source files">
<javac srcdir="." destdir="${build}">
<classpath>
<fileset dir="${lib}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${test_lib}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
答案 1 :(得分:0)
我认为你不能在classpath属性中使用模式。我可能错了。您应该以详细模式运行ant(-v选项)以查看它是如何使用您的classpath属性的。我怀疑它将它作为文字字符串传递给javac。
这就是我的所作所为:
<javac target="${javac.target}" source="${javac.source}" destdir="${validator.output.dir}" debug="on"
nowarn="off"
memorymaximumsize="128m" fork="true">
<classpath refid="validator.module.production.classpath"/>
<src>
<dirset dir="Validator">
<include name="src"/>
</dirset>
</src>
</javac>
...
<path id="validator.module.production.classpath">
<fileset dir="Validator/lib/-validator" includes="**/*.jar"/>
</path>
这些代码中的一部分是由我的IDE生成的,所以它有点冗长,但你明白了。
答案 2 :(得分:0)
按照http://ant.apache.org/manual/using.html中的说明尝试此操作,而不是像javac一样提供classPath属性
<classpath>
<pathelement location="libs/*.jar"/>
</classpath>
还有其他方法可以通过上面提到的链接浏览