我们在android studio中有一个多项目gradle构建。我们不时地改变其中的一些东西,通常只有一两行代码,但它从不容易知道放在哪里。我发现很难知道哪些属性存在哪里所以我希望有类似转储的东西 - 我可以在那个时间点看到所有属性和他们的孩子,这会使更改变得更容易
我找到了这个
def void explainMe(it){
//println "Examining $it.name:"
println "Meta:"
println it.metaClass.metaMethods*.name.sort().unique()
println "Methods:"
println it.metaClass.methods*.name.sort().unique()
println "Depends On:"
//println it.dependsOn.collect({it*.getName()})
println "Properties:"
println it.properties.entrySet()*.toString()
.sort().toString().replaceAll(", ","\n")
}
这没关系,但是我想在顶层范围内调用它,并且递归地为它的所有子节点调用它,并且在最好的情况下,将文件存储输出到文件以便能够搜索它。任何想法将不胜感激?或者可以将调试器附加到gradle构建并检查/监视内部的变量吗?
感谢
答案 0 :(得分:7)
Gradle非常具体地支持检查构建模型的某些部分(gradle tasks
,gradle help --task taskName
,gradle properties
,gradle projects
,gradle dependencies
,{{1但是,目前没有用于深入检查任意构建模型属性及其值的通用功能。相反,人们通常会在构建脚本中添加一些gradle dependencyInsight
和/或咨询Gradle Build Language Reference。
要回答第二个问题,可以使用与任何其他外部应用程序相同的方式调试Gradle构建。可以通过println
或JAVA_OPTS
环境变量设置必要的JVM args(通常由调试器提供)。调试时最好用GRADLE_OPTS
执行Gradle。