Debugging Gradle Plugin

Debugging via IDE

IDE 右侧的 Gradle 窗口中,选中要调试的 TasK,右键菜单选择 Debug 直接开始调试,如下图所示:

Debugging via Command Line

  1. Runing Task in Debug Mode
$ ./gradlew myTask -Dorg.gradle.debug=true
1

Then, the Gradle daemon procee will wait for you to attach a debugger at localhost:5005 by default.

  1. Attaching Gradle Daemon Process

    然后,选择端口为 5005 的进程,如下图所示:

Debugging via JVM args

在开发插件的过程,如果要细致入微的了解 Android Gradle Plugin 是如何工作的,那么,最好的办法就是调试它,跟着断点一步一步看它是如何运行的,具体的调试步骤如下:

  1. Configuring gradle.properties

    比较方便的做法是配置全局的 gradle.properties,这样对所有 Gradle 工具都适用,配置文件位于 ~/.gradle/gradle.properties,在 gradle.properties 文件中加上 org.gradle.jvmargs 属性:

    org.gradle.jvmargs=-XX:MaxPermSize=4g -XX:+HeapDumpOnOutOfMemoryError -Xmx4g -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006
    
    1
  2. Starting Gradle Daemon

    $ ./gradlew --stop     # 先停掉 daemon 进程
    $ ./gradlew --daemon   # 启动 daemon 进程
    
    1
    2
  3. Attaching Gradle Daemon Process

    然后,选择 Gradle Daemon 进程,如下图所示:

  4. Setting Break Point

    在相应的代码行放上断点,如果 Gradle Daemon 进程已经 Attach 上了的话,断点的图标会显示为绿色,如下图所示:

  5. Running Task

    在命令行中执行相应的 Task,例如:

    $ ./gradlew assembleDebug
    
    1