在IntelliJ中调试gradle内部类

在IntelliJ中调试gradle内部类,gradle,intellij-idea,Gradle,Intellij Idea,我有一个自定义任务,如下所示: 任务你好{ 多拉斯特{ “你好,世界!” } } 现在我可以在doLast上设置断点,IntelliJ将停止,但我无法调试到gradle核心类中,例如:org.gradle.api.internal.project.DefaultProject#task(…) 是否可以附加Gradle源以调试IntelliJ中的Gradle内部类?我不知道如何将注释转换为答案,但本质上,@m-ricciuti是正确的,必须做的是: 将实现(gradleApi())(在Kotli

我有一个自定义任务,如下所示:

任务你好{ 多拉斯特{ “你好,世界!” } }

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


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

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

  • 实现(gradleApi())
    (在Kotlin DSL中)添加到
    依赖项中
  • gradle wrapper.properties中指定
    -all
    分布:
  • 在IntelliJ中创建“远程JVM调试”运行配置(所有设置都可以保持“原样”)
  • 使用参数运行gradlew-Dorg.gradle.debug=true--no daemon,它将显示“Starting daemon”并暂停
  • 通过调试按钮启动创建的运行配置

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

也许这有帮助:?此外,您应该将gradle包装配置为使用'*-all'发行版(例如
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
),您可能还必须添加依赖项“gradleappi()(
依赖项{compileOnly gradleappi()}
)以使gradle源代码可用于调试
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-all.zip