【问题标题】:How can I debug gradle plugin如何调试 gradle 插件
【发布时间】:2017-06-10 07:24:22
【问题描述】:

我用 IntelliJ 编写了一个 Android gradle 插件。我在一个 Android 应用程序中使用它。我想调试插件。所以我尝试在 IntelliJ 中创建一个远程调试

然后在 Android Studio 中做一些事情。 执行
export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"./gradlew showTips --no-daemon 。结果是 IJ 调试器可以连接到 VM,但没有在断点处停止。 我的插件代码是这个

IJ 中的结果是这样的,永远不会停在断点处

Connected to the target VM, address: 'localhost:5005', transport: 'socket'
Disconnected from the target VM, address: 'localhost:5005', transport: 'socket'

我该怎么做才能使断点变得有用

【问题讨论】:

  • 我猜 gradle 守护进程会使多个 JVM 的事情变得复杂。您可以通过将org.gradle.daemon=false 添加到gradle.propertiesdisable the daemon
  • @LanceJava 谢谢,我试过了,但是没有生效

标签: debugging android-studio intellij-idea gradle


【解决方案1】:

我认为您还需要为 gradle 设置一个调试属性。 -Dorg.gradle.debug=true

org.gradle.debug
    When set to true, Gradle will run the build with remote debugging enabled,
    listening on port 5005. Note that this is the equivalent of adding
    -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
    to the JVM command line and will suspend the virtual machine until a
    debugger is attached.

https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties

【讨论】:

  • 我尝试在gradle.properties中添加-Dorg.gradle.debug=true,但没有生效。 groovy 代码可以调试吗?
  • 这个 groovy 文件可以远程调试吗?
  • Groovy 代码可以调试,但那是来自这个关于调试的线程...discuss.gradle.org/t/…
  • 另外,您可能希望获取此问题/答案stackoverflow.com/a/11129708/873237
  • 谢谢,但有点不同。我的问题是调试器可以连接但不能在断点处停止。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多