2013-03-13 125 views
11

我正在用eclipse ide中的java开发一个自定义ant任务。从eclipse调试Ant任务

是不是有可能调试它?那是放在java行的断点,当蚂蚁执行时,它停在那里,我可以通过代码?

编辑:由于这个问题已被封闭为重复,我想详细说明为什么它是完全不同的。

我正在调试组成蚂蚁任务的java代码,而不是蚂蚁构建的步骤。答案已经部分帮助了我,但我仍然需要弄清楚为什么我的eclipse没有调试远程Java应用程序。

+0

你见过这个问题吗? http://stackoverflow.com/questions/3039933/ant-debugging-in-eclipse – 2013-03-13 08:42:33

+0

是的,但我不想调试蚂蚁构建文件,我想调试构成蚂蚁任务的Java代码。 – clamp 2013-03-13 08:52:25

+0

对不起,误解了你的问题。 [自定义任务教程的相关部分](http://ant.apache.org/manual/tutorial-writing-tasks.html#Debugging)建议从此源代码构建ant。 – 2013-03-13 09:17:48

回答

18

在运行ANT之前,您需要通过输入以下内容启动启用远程调试的ANT。

set ANT_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 

这将导致运行ANT的JVM暂停,直到您连接调试器。

接下来,您需要修改ANT正在使用的类路径,以获取构成您正在编写的自定义任务的类。我不认为有一种方法可以轻松地使用环境变量,所以最快的方法是编辑ant.bat文件。

现在,当您的自定义任务运行时,它将停止在IDE中的任何断点处。

+0

谢谢,是一个简单的足以引导蚂蚁到组成我的任务的类? – clamp 2013-03-13 09:27:28

+0

不,'taskdef'只需要类名,您需要将IDE的输出目录添加到ANT的类路径中,以便ANT JVM找到该类。 – 2013-03-13 09:59:47

+0

根据https://ant.apache.org/manual/running.html,看起来您可以使用-lib命令行选项将您的库添加到类路径中,以用于ant 1.6及更高版本。这比编辑批处理文件更可取。 – kc2001 2017-10-30 17:02:42