在IntelliJ中调试Gradle内部类

时间:2018-11-21 08:32:16

标签: gradle intellij-idea

我有一个自定义任务,就像这样:

task hello { doLast { println 'Hello, World!' } }

现在,我可以在doLast上设置断点,并且IntelliJ将在此处停止,但是我无法调试gradle核心类,例如:org.gradle.api.internal.project.DefaultProject#task(...)

是否可以在IntelliJ中附加Gradle源以调试Gradle内部类?

1 个答案:

答案 0 :(得分:0)

我不知道如何将评论转换为答案,但本质上,@m-ricciuti 是正确的,必须做的是:

  • implementation(gradleApi())(在 Kotlin DSL 中)添加到 dependencies
  • -all 中指定 gradle-wrapper.properties 分布:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-all.zip
  • 在 IntelliJ 中创建“远程 JVM 调试”运行配置(所有设置都可以“保持原样”)
  • 使用参数 gradlew <task> -Dorg.gradle.debug=true --no-daemon 运行 gradle,它会说“正在启动守护进程”并暂停
  • 通过调试按钮启动创建的运行配置

通过这种方式,您可以在 @TaskAction 方法上设置断点,但是,我仍然无法在 CloseableHttpClientInternalHttpClient 类中设置断点。这基本上是我最感兴趣的,所以如果有人知道更多......请插话!