阅读 133

Gradle 源码调试,详细步骤

加断点能更好的理解过程,因为可以看到运行时,各变量的值,原本你不好理解的地方,看了变量值后,可能就能理解了。

本文的背景是,打包的过程中报出 Duplicate class 错误,就是一个类在多个aar中出现了,造成了冲突,就想通过源码去了解 gradle 是怎么去处理的,在看源码的过程中,有些地方可能不好理解,那么 debug 可以实时看到变量值,很好的提升代码的理解。

1、先配置

  • 菜单栏 Run->Edit Configurations

image.png

  • 点击左上角的+,点Remote

image.png

  • 取名字 ok

image.png

  • 把gradle的源码拉到本地,从而可以查看

image.png 在模块下依赖一下gradle的源码,这样同步过后,可以在 External Libraries 中找到,注意一点,这里最好用 compileOnly 的方式把 gradle 的源码引进来,不然很大可能在 debug 的过程中报错,就会造成还没运行到你的断点,就终止了,错误信息如下:

image.png

2、执行gradle命令

./gradlew app:checkDebugDuplicateClasses(任务名)  -Dorg.gradle.daemon=false -Dorg.gradle.debug=true 复制代码

执行这个命令后,输出如下:

image.png

再去点debug按钮,然后在你想要调试的地方加断点,比如我想调试 checkDebugDuplicateClasses 这个task,看看gradle是怎么去检测依赖冲突的,就在必经之地加个断点:

image.png


作者:HuntX
链接:https://juejin.cn/post/7021435457074364429


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐