Apache Ant网站 Apache Ant标志
Apache Ant 站点
项目
 

有问题吗?

有问题吗?

本页详细介绍了您可以采取的一些步骤来尝试解决使用 Apache Ant 时可能遇到的任何问题。如果您发现无法解决问题,那么此页面将帮助您收集一些相关信息以在错误报告中提供。这些信息将帮助 Ant 开发人员理解并解决问题。当然,并非此处的所有步骤都适用于您可能遇到的每个问题 - 这些只是为您指明正确方向的一些建议。

确保您实际上运行的是您认为的 Ant 版本

许多工具都包含 Ant 版本,并且某些操作系统现在甚至默认安装它,因此您可能安装了您不知道的 Ant 版本。

首先要做的事情之一是运行

ant -version



ant -diagnostics

以确保确定。另外,我们强烈建议您使用空的 CLASSPATH 运行 Ant。如果可以从 CLASSPATH 加载任何其他版本的 Ant,则可能会由于加载不兼容的类而发生多种类型的错误。

请参阅常见问题解答中的一些 示例,但许多其他问题也是系统上旧版本 Ant 造成的。

阅读手册

当您遇到 Ant 问题时,要做的第一步是阅读给您带来麻烦的任务或概念的手册条目。特别是,检查任务属性和嵌套元素的含义。也许有一个属性可以提供您所需的行为。如果您对手册本身有疑问,可以提交文档错误报告(见下文)来帮助我们改进 Ant 文档。

检查调试输出

如果您仍然遇到问题,下一步是尝试收集有关 Ant 正在执行的操作的其他信息。尝试使用以下标志运行 Ant verbose

ant -verbose



ant -v

这将产生如下所示的输出:

Ant 版本 1.4.1 于 2001 年 10 月 11 日编译
构建文件:build.xml
检测到的 Java 版本:1.3,位于:D:\usr\local\java\jdk13\jre
检测到的操作系统:Windows NT
解析构建文件 D:\ant\build.xml URI = file:D:/ant/build.xml
项目基本目录设置为:D:\ant
[property] 加载环境环境。
[property] 正在加载 D:\ant\conf.properties
目标“debug”的构建顺序是 [debug]
完整的构建顺序是 [debug, gensrc,compile,jar,test]
。。。

您应该能够从跟踪中看到更多有关 Ant 正在做什么以及为什么它采取特定操作过程的信息。如果您需要更多信息,可以使用该 -debug标志而不是 -verbose。这通常会产生如此多的输出,您可能希望将输出保存到文件中并在编辑器中对其进行分析。-logfile <filename>您可以使用标志或使用重定向来 保存输出 。

获得所有这些调试信息后,如何使用它来解决您的问题?这取决于相关任务和问题的性质。每个任务都会记录其操作的不同方面,但它应该让您了解正在发生的情况。例如,该<javac>任务记录它选择编译特定类文件而不是其他文件的原因,以及它正在使用的编译器以及它将传递给该编译器的参数。以下部分跟踪显示了为什么 <javac>添加一个类文件但跳过另一个类文件。接下来是它将使用哪个编译器、将传递给编译器的参数以及要编译的所有类文件的列表。

[javac] Test.java 被省略,因为 D:\classes\Test.class 是最新的。
[javac] 添加为 D:\classes\Unset.class 的 Unset.java 已过时。
[javac] 将 1 个源文件编译到 D:\classes
[javac] 使用经典编译器
[javac] 编译参数: -d D:\classes -classpath D:\classes;
D:\jdk118\classes.zip; -sourcepath D:\src\java -g:none
[javac] 要编译的文件:
D:\src\java\Unset.java

在许多情况下,Ant 任务是操作系统命令或其他 Java 类的包装器。在调试模式下,许多任务将打印出等效的命令行,就像 <javac>任务输出一样。如果您遇到问题,直接从命令行运行该命令通常很有用,就像 Ant 运行它一样,然后看看问题是否也从那里出现。问题可能出在正在运行的命令上,也可能出在 Ant 任务运行命令的方式上。您还可以在生成的命令行上查看更改属性值的效果。这可以帮助您了解您是否使用了正确的属性和值。

已经修复了吗?

检查调试输出后,如果您仍然认为您遇到的问题是由 Ant 引起的,则很可能其他人可能已经遇到过此问题,并且可能已被修复。因此,下一步是下载 ant 的源代码,请参阅svn

Gump 每天晚上都在构建 ant,并使用从最新源构建的 ant 来构建一长串开源项目。但是,gump 构建的 ant 版本不提供下载。即使是这样,它也不会包括大多数可选任务。

我们目前没有包含可选任务的夜间构建。

虫子

如果您确信已发现未修复的错误,请参阅我们有关错误数据库的文档。