Ответ 1
Команда gradle dependencies
, и ее результат значительно улучшен в Gradle 1.2. (Вы уже можете попробовать 1.2-rc-1 сегодня.)
Я прочитал этот комментарий в Gradle docs:
To deal with problems due to version conflicts, reports with dependency graphs
are also very helpful. Such reports are another feature of dependency management.
У меня есть какая-то банка, но мне нужно выяснить, откуда она взялась. Обычно я просто глобально исключаю его, но мне нужна информация об иерархии здесь. Как получить эту информацию, как я могу, от Айви и Мейвена?
НЕ упоминать, что кто-то приносит Hibernate jars (много) в мой список баннеров, и я действительно хочу знать, кто с тех пор, как я не использую Hibernate и не пытаюсь вырезать эту зависимость.
Команда gradle dependencies
, и ее результат значительно улучшен в Gradle 1.2. (Вы уже можете попробовать 1.2-rc-1 сегодня.)
А, поскольку у меня не было зависимостей в моем главном проекте, "gradle зависимостей" перечисляет только те, а не зависимости от подпроектов, поэтому правильная команда оказалась
gradle :<subproject>:dependencies
поэтому для меня это было
gradle :master:dependencies
Если вы хотите видеть зависимости от проекта и всех подпроектов, используйте в своем верхнем уровне build.gradle:
subprojects {
task listAllDependencies(type: DependencyReportTask) {}
}
Затем вызовите gradle:
gradle listAllDependencies
Если у вас много конфигураций, вывод может быть довольно длинным. Чтобы просто показать зависимости для конфигурации времени выполнения, запустите
gradle dependencies --configuration runtime
Если вы хотите, чтобы рекурсивные объекты включали подпроекты, вы всегда можете написать их самостоятельно:
Вставить в верхний уровень build.gradle
:
task allDeps << {
println "All Dependencies:"
allprojects.each { p ->
println()
println " $p.name ".center( 60, '*' )
println()
p.configurations.all.findAll { !it.allDependencies.empty }.each { c ->
println " ${c.name} ".center( 60, '-' )
c.allDependencies.each { dep ->
println "$dep.group:$dep.name:$dep.version"
}
println "-" * 60
}
}
}
Запустить с помощью:
gradle allDeps
Для тех, кто ищет для отладки Gradle зависимостей в react-native
проектах, команда (выполняются из projectname/android
)
./gradlew app:dependencies --configuration compile
gradlew -q :app:dependencies > dependencies.txt
Запишет все зависимости в файл dependencies.txt
В последних версиях Gradle (т.е. 5+), если вы запускаете сборку с флагом --scan
, она сообщает вам все виды полезной информации, включая зависимости, в браузере, где вы можете щелкать мышью.
gradlew --scan clean build
Он проанализирует дерьмо из того, что происходит в этой сборке. Это довольно аккуратно.