调试Ant任务并不像简单的Java调试那么容易。
虽然你可以在Ant文件中设置断点进行调试,但要在特定自定义任务的代码中深入挖掘,则需要添加远程调试器才能“捕获”运行进程。
我将解释如何在Eclipse中执行此操作,尽管我认为所有主要的Java IDE都可以实现。首先是为您计划使用自定义任务的Ant文件创建新的运行配置。要这样做,请转到:
Run-> External Tools -> External Tools configuration...
右键单击 Ant Build -> New 选项卡,然后在 Main 选项卡中选择 Buildfile 字段中的Ant脚本。然后转到 JRE 选项卡并插入以下JVM参数:
-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
如果您想知道这些参数的含义,请查看此处,尽管它有点过时(Java 1.5),但仍然有效。
完成这个步骤之后,必须为远程Java应用程序创建新的调试配置。要这样做,请导航到:
Run-> Debug configurations
在左侧列中下拉列表,右键单击 Remote Java Application -> New 选项卡。将项目名称选择到 Project 字段中。只要您使用与Ant配置(JVM参数)相同的主机和端口的默认值即可。
一切都准备就绪进行测试运行!在您认为必要的任何地方添加断点。在我的案例中,我在使用自定义ant任务的ant脚本以及在execute方法中的自定义ant任务中都添加了一个断点。
右键单击您的 Ant脚本或任务-> Debug As... -> Ant > Build 执行之前,请转到 Run->Debug Configurations 并调试您预先创建的Java Remote Application config。这将启动一个单独的线程,将调试您的自定义ant任务代码,前提是您包含了一些断点 :)。您可以在以下图片中看到,在我的情况下,线程停在我自定义的ant任务的execute方法中。
从此时起,由您自己决定下一步做什么...