美文网首页Android拾遗
Gradle系列7--调试Gradle插件

Gradle系列7--调试Gradle插件

作者: cntlb | 来源:发表于2018-11-22 18:31 被阅读0次

    前面几篇关于Gradle插件的开发。在开发过程中,遇到问题就需要找出问题出在哪里。这个问题是自定义插件中还是其他地方?通常报错会给提示:

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    

    然后添加--info--debug选项或许可以解决。有时我们需要深入源代码找出问题发生时的情况,又或者想要跟踪代码的执行过程以了解原理等等。这种方式仍然称为“断点调试”。

    工具

    IntelliJ IDEA、Android Studio或者类似环境

    断点调试

    点击Edit Configurations

    debug-gradle-1.png

    点开左边的“+”号,点击“Remote”


    debug-gradle-2.png debug-gradle-3.png
    1. 修改名称(不改默认Unnamed)
    2. Use module classpath这一项如果要调试顶级build.gradle保持默认就可以了,如果是gradle插件工程中的代码就选插件所在的模块。
    3. 默认远程调试的服务器是localhost:5005
    4. 点击"OK"

    选中远程调试任务如图


    debug-gradle-4.png

    在需要调试的地方打上断点,然后命令行执行调试任务

    ./gradlew tasks -Dorg.gradle.debug=true --no-daemon
    

    上面执行tasks任务并打开Gradle的“调试模式”。运行时你会发现Gradle停止在远程配置调试器连接之前。

     > Starting Daemon
    

    点击调试按钮就可以开始连接远程调试了。

    概括

    1. IntelliJ(Android Studio) Edit Configurations点击+找到Remote点击创建远程配置
    2. 填写信息. Name自定义, 默认远程调试localhost:5005
    3. Search sources using module's classpath选择需要调试的插件模块
    4. 命令行执行任务调试: ./gradlew tasks -Dorg.gradle.debug=true --no-daemon,等待连接调试
    5. 源代码断点, 选择刚创建的调试配置, 点击 Debug Xxx(Shift+F9)

    远程调试同样适用于注解处理器(Annotation Processor)

    问题

    Remote Configuration debugger **can not be attached.

    • 这是因为端口(默认5005)已经被另一个正在运行的Gradle守护进程占用了,简单的停止即可
      ./gradlew --stop
      

    参看How to debug Gradle Plugins with IntelliJ

    相关文章

      网友评论

        本文标题:Gradle系列7--调试Gradle插件

        本文链接:https://www.haomeiwen.com/subject/idfrqqtx.html