Как сбросить все значения gradle, используемые для сборки
у нас есть многопроектная 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 сборке и проверке/просмотру переменных внутри?
спасибо
Ответы
Ответ 1
Gradle имеет очень специфическую поддержку для проверки определенных частей модели построения (gradle tasks
, gradle help --task taskName
, gradle properties
, gradle projects
, gradle dependencies
, gradle dependencyInsight
и т.д.), но doesn ' t в настоящее время имеет общую функцию для глубокого контроля свойств произвольной модели сборки и их значений. Вместо этого обычно можно добавить некоторые println
в сборку script и/или обратиться к Gradle Справочник по языку сборки.
Чтобы ответить на ваш второй вопрос, сборка Gradle может быть отлажена так же, как и любое другое внешнее приложение. Необходимые аргументы JVM (обычно предоставляемые отладчиком) могут быть установлены с помощью переменной среды JAVA_OPTS
или GRADLE_OPTS
. Вероятно, лучше всего выполнить Gradle с --no-daemon
при отладке.