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:如何将 Java 程序作为 .jar 文件进行调试?
将外部 JS 引擎添加到 Eclipse 运行时以在 Java 15 中使用 Eclipse Java 编译器和 Ant 中的 <script>