マルチプロジェクトのgradleビルドがAndroid studioにあります。時々、何かを変更する必要があります。通常は1行か2行のコードしかありませんが、どこにあるかを簡単に知ることはできません。どのプロパティがどこに存在するかを知るのは非常に難しいので、ダンプのようなものが欲しいです-その時点ですべてのプロパティとその子を見ることができるすべてのもの、これは変更をはるかに簡単にします
私はこれを見つけました
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ビルドにアタッチして、内部の/ watch変数を検査することは可能でしょうか?
ありがとう
Gradleは、ビルドモデルの特定の部分(gradle tasks
、gradle help --task taskName
、gradle properties
、gradle projects
、gradle dependencies
、gradle dependencyInsight
、など)が、現在、任意のビルドモデルのプロパティとその値を詳細に検査するための一般的な機能はありません。代わりに、通常、ビルドスクリプトにprintln
sを追加するか、 Gradleビルド言語リファレンス を参照します。
2番目の質問に答えるために、Gradleビルドを他の外部アプリケーションと同じ方法でデバッグできます。必要なJVM引数(通常はデバッガーによって提供されます)は、Java_OPTS
またはGRADLE_OPTS
環境変数を介して設定できます。デバッグするときは、--no-daemon
を指定してGradleを実行するのがおそらく最善です。