有问题吗?
有问题吗?
本页详细介绍了您可以采取的一些步骤来尝试解决使用 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 版本不提供下载。即使是这样,它也不会包括大多数可选任务。
我们目前没有包含可选任务的夜间构建。
虫子
如果您确信已发现未修复的错误,请参阅我们有关错误数据库的文档。