theme: smartblue
前言
我在写gradle plugin
的时候,碰到过两个大难题,所见即所得,当场运行我们的代码。这部分我们之前已经介绍过。协程 路由 组件化 1 1 1>3
另外一个就是调试了插件或者build.gralde,这期把我当前的调试方式介绍给大家。
最近发现了森哥(Booster)作者,其实在booster的文档中也有对应教程,但是和我学会的貌似有点不一样,有兴趣的可以去看看。
调试 Gradle Plugin 森哥牛逼 破
准备工作
下面来介绍下我的方式,首先是前置的准备工作。
- 找到
edit configuration
- 添加一个新的
configuration
- 选择
remote
- 改个合理的名字 没啥
- 一定要在debug的时候选择这个模式哦
开启调试模式
首先我们简单的输入一下命令行
./gradlew xxxxx(大概率是Avengers Assemble) -Dorg.gradle.debug=true --no-daemon
这个时候我们的命令行会进入锁定状态,不知道的同学还以为是程序卡主了。
然后这个时候我们需要做的是切换到remote
的项目中去,然后点击图片中的debug按钮。
高能预警 一定要注意第五步哦。
当我们按下debug按钮时,原来终止的命令行就会继续执行,然后当运行到我们的代码块时,就能调试我们当前的代码了。
当然我们还可以拿来调试很多别的东西,比如说lint
,compiler(kapt)
,ksp
,build.gralde
等等。
ksp支持
根据ksp官方issue,以及调试模式要额外添加参数
小贴士 ksp的debug模式的命令行要多一点 --no-daemon -Dorg.gradle.debug=true -Dkotlin.compiler.execution.strategy=in-process
打脸了 更简单的版本
根据评论区大佬到回复哦,更简单的调试版本,新版的Android studio
在这部分进行了调整优化,步骤如下。
虽然我可能还是会选择旧的。略微有点看看的,也不知道是错觉还是咋了。
- 点开右边的gradle
- 找到你想要的task 点下debug
如果gradle task 不见了 可以参考下图 把勾选去掉
听说你们想要错误堆栈
有的同学说在编译的时候gradle其实已经挂了,这个时候不显示堆栈,很难帮助定位问题。
其实很简单哦,只要在命令行后面加个-s 就行了。
./gradlew xxxxx(大概率是Avengers Assemble) -s
结尾
最后先附上参考资料 Android gradle 脚本断点调试
再次感谢大佬教会了我。本文这次主要以图片内容为主,教会大家debug就可以方便大家更好的去学习gradle相关的知识。
立正挨打,哈哈哈 ,更新下文章内容