2014-03-05 3 views
12

dump wir haben eine Multi-Projekt-Gradle in Android Studio gebaut. ab und zu müssen wir etwas daran ändern, und normalerweise sind es nur ein oder zwei Codezeilen, aber es ist nie leicht zu wissen, wo man diese hinlegt. Ich finde es ziemlich schwierig zu wissen, welche Eigenschaften wo vorhanden sind, also würde ich gerne etwas wie dump-everything haben, wo ich alle Eigenschaften und ihre Kinder zum Zeitpunkt sehen könnte, würde dies Änderungen viel einfacher machenWie alle Gradle-Werte für Build

Ich habe gefunden dies

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") 
} 

, die in Ordnung ist, aber ich würde es gerne auf Top-Level-Umfang nennen und für alle seine Kinder rekursiv, und in bester Fall speichert Ausgabe in Datei durch sie suchen kann. Irgendeine Idee würde geschätzt werden? alternativ wäre es möglich, einen Debugger anzuhängen, um Variablen aufzubauen und Variablen darin zu inspizieren/zu beobachten?

dank

+0

Tolle Methode zum Debuggen, danke! –

Antwort

7

Gradle hat sehr spezifische Unterstützung für bestimmte Teile des Build-Modells Inspektion (gradle tasks, gradle help --task taskName, gradle properties, gradle projects, gradle dependencies, gradle dependencyInsight, etc.), hat aber derzeit nicht ein allgemeines Merkmal für tief Überprüfung beliebiger Buildmodelleigenschaften und ihrer Werte. Stattdessen würde man normalerweise println s zum Build-Skript hinzufügen und/oder die Gradle Build Language Reference konsultieren.

Um Ihre zweite Frage zu beantworten, kann ein Gradle Build auf die gleiche Weise wie jede andere externe Anwendung debuggt werden. Die notwendigen JVM-Argumente (typischerweise vom Debugger bereitgestellt) können über die Umgebungsvariable JAVA_OPTS oder GRADLE_OPTS eingestellt werden. Es ist wahrscheinlich am besten, Gradle mit --no-daemon beim Debuggen auszuführen.

+0

Aufgaben zeigen keine Eigenschaften an, von denen einige durch Aufgaben festgelegt werden/können. – will