当我处理一个对我来说不熟悉的新java源代码时,我通常会在运行时调试并遵循它的行为,查看对象的状态,有时会在运行时执行表达式并观察系统的工作原理。这有助于非常快速地学习新的源代码,甚至可以在不知道所有内容的情况下开始解决问题。
现在gradle使用groovy(因此我们缺乏编译时安全性和正确的自动完成)我想使用相同的方法,因为gradle build对我来说是一个魔术。我想设置一个断点,就像在普通的java代码中一样,停在那里,看看有什么对象具有哪些状态等等。只是环顾四周。
我们如何使用gradle执行此操作?
目前,我正在做这样的事情,以便了解一些对象是否包含等等,但这显然是不够的。
import groovy.json.*
defaultTasks 'main'
apply plugin: 'java'
task main << {
println new JsonBuilder( convention ).toPrettyString()
}
答案 0 :(得分:1)
如果你想调试gradle脚本,那么这个简短的tutorial对你有用。
主要的是,Idea启动了一个执行gradle任务的守护程序,你必须将调试器附加到远程进程。要做到这一点,您需要修改GRADLE_OPTS环境变量以启用远程调试,方法是添加:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
然后您只需要在Idea中配置远程调试,通过命令行启动脚本,然后将调试器附加到它。