我有一个自定义任务,比如这个:
任务你好{
做最后{
println '你好,世界!
}
}
现在我可以在 doLast
上设置断点,IntelliJ 会停在那里,但我无法调试到 gradle 核心类,例如:org.gradle.api.internal。项目.DefaultProject#task(...)
是否可以附加 Gradle 源代码以在 IntelliJ 中调试 Gradle 内部类?
最佳答案
我不知道如何将评论转换为答案,但本质上,@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 调试”运行配置(所有设置都可以保持“原样”)
- 使用参数运行 gradle
gradlew <task> -Dorg.gradle.debug=true --no-daemon
,它会说“启动守护进程”并暂停 - 通过调试按钮启动创建的运行配置
这样,你就可以在@TaskAction
上设置断点了方法等等,但是,我仍然无法在 CloseableHttpClient
中设置断点。或 InternalHttpClient
类。这基本上是我最感兴趣的,所以如果有人知道更多...请插话!
关于gradle - 在 IntelliJ 中调试 gradle 内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53407980/