gradle plugin调试

假设我们这里是开发一个按照如下方式依赖的annotationProcessor

// app模块build.gradle
annotationProcessor project(":router-compiler")

调试该插件需要做两件事情

  • 以debug方式启动gradle task
  • 连接到debugger

调试模式启动gradle task

在终端中按照如下方式启动即可,正常情况下编译会停住,等待debugger连接

./gradlew assembleDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true

此时可能会出现如下错误,提示端口被占用

Please read the following process output to find out more:
-----------------------
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]

解决方式是结束占用端口的进程,同时可以停止其它在运行的gradle deamon以避免干扰

[wangxue@wangxue-mac] Router$ lsof -i:5005
COMMAND  PID    USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
java    4354 wangxue    4u  IPv4 0xc7ff8f48c51926d      0t0  TCP *:avt-profile-2 (LISTEN)
[wangxue@wangxue-mac] Router$ 
[wangxue@wangxue-mac] Router$ kill 4354
[wangxue@wangxue-mac] Router$ ./gradlew --stop
Stopping Daemon(s)
1 Daemon stopped

连接调试器

打开Edit Configurations窗口,添加remote类型配置
Edit Configurations
简单修改一下名称,同时可以选择Use module classpath为插件所在的模块,其它不用修改,点击OK保存。

选择配置为刚才新建的plugin,点击工具栏中的调试按钮即可连接调试器,之后gradle编译任务会继续运行,在插件代码中的断点也可以正常停住了。
连接到调试器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值