eclipse中的ant调试

Posted

技术标签:

【中文标题】eclipse中的ant调试【英文标题】:ant debugging in eclipse 【发布时间】:2011-03-03 16:01:06 【问题描述】:

我想了解 ANT 使用 eclipse 的调试能力。基本上 我有一个同事编写的 ANT 构建脚本,我想一步 通过每个目标,看看存在的各种任务是什么 调用。

【问题讨论】:

另见***.com/questions/15380429/… 【参考方案1】:

您可以通过以下步骤在 Eclipse 中执行此操作:

    确保在 ANT 编辑器(右键单击构建 文件 -> 打开方式 -> Ant 编辑器)。 双击左边距 您想要的构建文件 断点。 打开 Ant 视图(窗口 -> 显示 查看 -> 蚂蚁)。 如果构建文件不在视图中 那么你可以简单地添加它。 添加后右键单击蚂蚁 要运行的目标并选择 Debug as -> 蚂蚁构建 Debug 透视图应该打开 并且该过程应该停止在您的 可以单步执行的断点 通过它 有时需要在调试时设置参数。可以通过选择:Debug as -> Ant build 来设置。然后需要选择Arguments。然后可以将值输入为:-Dprop.name=property value

【讨论】:

【参考方案2】:

创建一个脚本antdebug.sh,在启动ant之前设置环境变量ANT_OPTS

#!/bin/bash
set -e
export ANT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=2607"
# now execute ant
exec ant "$@"

之后,您可以使用 IDE 远程附加到它。请注意suspend=y,它会暂停执行直到你被附加。

【讨论】:

【参考方案3】:

由于 ant 只是一个 Java 应用程序,您只需在 eclipse 中添加一个调试配置(类型为 Java 应用程序)即可。请参阅Running Ant via Java,了解如何像调用 Java 应用程序一样调用 Ant。我假设您知道如何在 Eclipse 中调试 Java 应用程序,这样您就可以完成剩下的工作。如果没有,请询​​问,我将对此进行扩展。

【讨论】:

【参考方案4】:

对于大型 ant 文件或大型 java 项目,当我们可能有多个 ant 文件相互调用时,我发现依赖关系图非常有用。为此,我使用了Grand。

当然,如果您想调试特定目标中的指令序列,这将无济于事。

【讨论】:

【参考方案5】:

在深入研究 Ant 内部之前,可能值得尝试使用 -d(调试)标志运行脚本并观察输出。假设您有兴趣了解特定 Ant 脚本如何工作(或不工作)而不是 Ant 本身。

如果 Ant 是您感兴趣的领域,以上答案就是您要遵循的方向。

【讨论】:

【参考方案6】:

在目标初始化后将下面的xml标签添加到ant build.xml

<javac srcdir="$src.java.dir" destdir="$target.build.dir" includeantruntime="true" source="$source" target="$target" debug="true" debuglevel="lines,vars,source" classpathref="main.classpath" fork="true" memoryinitialsize="512m" memorymaximumsize="512m" />

如果 javac 已经存在,请确保添加 debug="true" debuglevel="lines,vars,source" 以进行交互式调试会话。

【讨论】:

以上是关于eclipse中的ant调试的主要内容,如果未能解决你的问题,请参考以下文章

eclipse中的ant junit构建错误

Eclipse平台SDK支持的扩展点

eclipse:如何将 Java 程序作为 .jar 文件进行调试?

将外部 JS 引擎添加到 Eclipse 运行时以在 Java 15 中使用 Eclipse Java 编译器和 Ant 中的 <script>

eclipse调试之edit source lookup path解决方案

如何在eclipse中进行ant?