2012-07-06 72 views
2

我有一个ant脚本调用外部Ant任务:是否可以调试外部的ant任务?

<taskdef name="runStoriesAsEmbeddables" classname="org.jbehave.ant.RunStoriesAsEmbeddables"   
    classpathref="project.classpath" /> 

    <runStoriesAsEmbeddables includes="**/Ant*Stories.java" ignoreFailureInStories="true" 
    ignoreFailureInView="false" 
    systemProperties="story.path=.,qr.host=*,qr.port=*" generateViewAfterStories="true" /> 

而且我想用-Xdebug启动JVM上的Unix机器。 我在“java”任务中阅读了几个使用“jvmarg value =” - Xdebug“”的文档,但对于外部任务......我不知道如何使用它。 谢谢!

回答

2

在运行Ant之前设置ANT_OPTS环境变量。假设你使用的Bash shell:

对于Java 1.4:

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

对于Java 1.5和更高版本:

export ANT_OPTS=-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=y 

运行Ant脚本,然后连接到端口5005与调试器。

+0

谢谢你的帮助! – XiaoYao 2012-07-10 02:43:54

+0

谢谢你的帮助!有用!我只想提及另一件事:我们可以通过使用''在ant脚本中启动程序,但这意味着此类必须包含Main方法,因为''启动了一个新的jvm并且它需要一个输入点。但对我的例子来说,它不包含main方法,因为它只是一个继承的ant任务。对于这种情况,使用-Xdebug的唯一机会是启动ant时。我们需要按照Chad的说法导出ANT_OPTS,ant会在启动时使用它。 – XiaoYao 2012-07-10 02:53:45

相关问题