在eclipse内调试自定义ant task

本文介绍了如何在Eclipse中通过两种方法调试自定义的Ant Task。第一种方法是在Eclipse中配置Debug Configurations,指定ant的主函数和参数,添加必要的类路径,直接启动调试。第二种方法利用Java的远程调试能力,通过JDWP协议设置VM参数,创建Remote Java Application调试配置,实现远程调试。详细步骤包括修改ant启动脚本、设置远程服务客户端等。
摘要由CSDN通过智能技术生成

自定义的ant Task如果比较复杂,如何使用ant运行的build.xml调试对应的java代码?

思路一,ant本身是个批处理,逻辑也是用java实现的,自定义的类Task是以refect的方式由java虚拟机加载执行的。我们用的命令 ant -f xxx.xml target实际是调用了一个脚本,并把build文件和target作为参数传给ant的主函数。因此完全可以在eclipse中完成这些动作,并启动调试或者单纯运行。


在一个拥有build.xml文件的java工程(既包含要调试的task的工程)中,针对工程debug-》debug configurations,工程选择当前工程,主函数org.apache.tools.ant.Main,也就是ant的主函数。

选择argument选项卡,在program argument中填写你本来想运行的ant参数比如: -f  "D:\xxx\build.xml" debugtargetname;

在classpath中bootstrap entries中添加ANT_HOME\lib目录下的ant.jar和ant-launcher.jar。

在源代码中打上断点即可启动调试。

其他的配置没什么特殊的,将要调试的工程export出一个jar,比如test.jar,放置在和build.xml同目录下。具体的build.xml中

	<target name="debugtarget">
		<taskdef name="debugtest" classname="com.anttest.ForTestTask" classpath="./test.jar"/>

		<debugtest/>		
	</target>

在com.anttest.ForTestTask的代码中的加断点即可。


这个方法要配置很多的环境信息和参数,且不利于多次调试,另外一种方法是利用java的远程调试来达到调试的目的。

参考这篇文字,http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/

JPDA简介

Sun Microsystem 的 Java Platform Debugger Architecture (JPDA) 技术是一个多层架构,使您能够在各种环境中轻松调试 Java 应用程序。JPDA 由两个接口(分别是 JVM Tool Interface 和 JDI)、一个协议(Java Debug Wire Protocol)和两个用于合并它们的软件组件(后端和前端)组成。它的设计目的是让调试人员在任何环境中都可以进行调试。JPDA 不仅能够用于桌面系统,而且能够在嵌入式系统上很好地工作。
JVM Tool Interface (JVMTI) 规定必须为调试提供 VM(编辑注:从 Java V5 开始,将用 JVMTI 代替 Java V1.4 中的 JVMDI)。Java Debug Wire Protocol (JDWP) 描述调试信息的格式,以及在被调试的进程和调试器前端之间传输的请求,调试器前端实现 JDI,比如 Eclipse、Borland JBuilder 等。根据 Sun 的 JPDA 规范,被调试的程序常常称为 debuggee。JDI 是一个高级的接口,它定义用于远程调试的信息和请求。下面给出了调试器的架构。


java平台调试器架构

				
             Components        
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值