@OliverCharlesworth, пожалуйста, используйте кнопку закрытия, чтобы пометить ответ как дубликат
030
1
@ user3286701 возможно, вы могли бы принять один из ответов?
0:30
6
gradle dependenciesдолжно сработать. Это безумие, как у всех, gradlew app:dependenciesвероятно, потому что Android.
prayagupd
2
@prayagupd Это должен быть ответ. Вопрос о граде. После прочтения высоко оцененных ответов я открыл терминал и перешел в каталог общего проекта, который использует gradle. Я выполнил 'gradle app: dependencies' и получил ошибку 'Build failed', хотя я не планировал ничего строить. Мой проект работает нормально, и я просто хотел увидеть зависимости.
ka3ak
Ответы:
604
Для Android используйте эту строку
gradle app:dependencies
или если у вас есть упаковщик:
./gradlew app:dependencies
где appнаходится ваш проектный модуль
Кроме того, если вы хотите проверить , если что - то compileпротив testCompileпротив androidTestCompileзависимости, а также то , что тянет его в:
Ах, я должен был поставить имя модуля там. Вот почему ... Спасибо!
Jenix
Только начал учиться на грейдере, поэтому немного растерялся. Могу ли я рассматривать gradlew как gradle, я имею в виду, могу ли я вводить те же опции / команды, что и gradlew с gradlew?
Jenix
1
@ Дженикс, да, если вы используете обертку, просто используйте ./gradlewвместо gradle
Чад Бингхэм,
2
Я получаю ошибку Project 'app' not found in root projectпри запуске этих команд. Раствор Бенджаминов однако работал.
августа
5
На самом деле ./gradlew :dependenciesбудет работать. Он перечислит зависимости для всех ваших проектов, но легко найти правильный.
dirkjot
240
Вы можете отобразить дерево зависимостей с помощью команды gradle dependencies. Для получения дополнительной информации обратитесь к разделу 11.6.4 Список зависимостей проекта в интерактивном руководстве пользователя.
Когда я делаю это с моим проектом Android, все, что я получаю, это вывод: pastebin.com/fHFigAuY Предложения?
Нильзор
3
@Nilzor Вы, вероятно, выполняете команду в неправильном каталоге (который не содержит build.gradleфайл), или ваш файл сборки не применяет никакой плагин.
Бенджамин Мущко
6
Вы можете получить зависимости для конкретного проекта, используя gradle: project: dependencies
Как я могу получить представление "Gradle проектов"?
user3526
1
@ user3526 нажмите на тег "gradle", который находится на правой стороне экрана. Посмотрите на прикрепленное изображение для справки
Николас Карраско
2
Я обнаружил, что это создает плоский список в AS 3.2.0 вместо дерева. Однако вариант командной строки создает дерево.
Том
5
@Tom запустить задачу «зависимости» в категории «справка», а не «Android». Это показывает, как дерево
Максим Березовский
27
Часто полный test, compileи androidTestCompileграф зависимостей слишком сложен для изучения вместе. Если вы просто хотите compileграф зависимостей, вы можете использовать:
Примечание: compileбыло объявлено устаревшим в более поздних версиях Gradle, и в более поздних версиях рекомендуется перевести все ваши compileзависимости на implementation. Пожалуйста, посмотрите этот ответ здесь
Как правило , выход из этого плагина можно найти в сборках / отчетах / зависимости граф каталога и содержит три файла (.dot | .png | .svg) , если вы используете 0.5.0 версии плагина.
Пример графика зависимостей в реальном приложении ( Chess Clock ):
Привет, Дэвид, я сделал, как было сказано в инструкциях к плагину. Я применил плагин в проекте gradle, но я не вижу никакой папки отчетов в каталоге сборки. Есть ли что-то, что нам нужно сделать, кроме как построить и запустить проект?
Ситуация в Gradle продвинулась вперед, поэтому я считаю, что этот вопрос заслуживает другого ответа.
Начиная с Gradle 4.3, были введены « сборочные сканы ». Вся соответствующая информация доступна в документации Gradle ( 1 , 2 ). Для меня это, кажется, самый простой способ проверить ваши зависимости (и, как правило, вашу сборку) четко и организованно.
Их очень легко создать, просто выполните:
gradle build --scan
(или ./gradlew build --scanесли вы используете обертку)
Это создает случайно сгенерированную ссылку, где вы можете увидеть ваш скан. Открывая эту ссылку, вы вводите свой адрес электронной почты и получаете полный контроль над ссылкой: например. поделиться или удалить его. В нем много информации о вашей сборке , а не только о зависимостях. Вы можете видеть свои зависимости, их иерархии, репозиторий, используемый для их получения, а также множество других вещей о вашей сборке, а именно, ее производительность (которая представляет интерес для больших сложных сборок), ваши тесты, даже вывод на консоль и ваш конфигурация системы, какие JDK и JVM использовались, максимальный размер кучи и т. д.
Это принтскрин из фиктивного проекта:
Сканирование сборки является общей записью сборки, которая дает представление о том, что произошло и почему. Вы можете бесплатно создать сборку на scans.gradle.com.
Однако обратите внимание, что информация о вашем процессе сборки будет отправлена на серверы Gradle. Вы можете полностью удалить его, когда закончите проверку.
Наконец, вы также можете использовать сборку сканов с версиями Gradle более ранних, чем 4.3, вам просто нужно вручную добавить плагин сканов в ваш buildscript.
Редактировать :
Включая некоторые отзывы из комментариев, некоторые дополнительные примечания:
1) Очень трудно сделать это по ошибке или без понимания того, что некоторая информация для вашей сборки будет онлайн (частной для вас, с возможностью ее удаления, но все еще онлайн). ).
При выполнении gradle build --scanпоявляется следующее сообщение:
Publishing a build scan to scans.gradle.com requires accepting the Gradle
Terms of Service defined at https://gradle.com/terms-of-service. Do you
accept these terms? [yes, no]
Вы должны явно написать, yesа затем сообщение продолжается:
2) В Gradle Enterprise вы можете размещать сканы сборки gradle на своих собственных серверах. Однако у меня нет никакого опыта в этом, и мой предложенный подход был о стандартном распределении Gradle, используя серверы Gradle для ваших проверок сборки.
3) Сам Gradle продвигает сканирование сборки как способ решения большинства ваших проблем со сборкой.
Извините, что понизил ответ, но IMO не отвечает на вопрос и недостаточно четко предупреждает, что когда gradle build --scanвы публикуете информацию о вашей сборке где-то в Интернете - и чтобы удалить ее, вы должны связать ее с рабочим адресом электронной почты.
Михал
1
Эй, Михал, вы можете понизить голос, если вы чувствуете, что так. Однако я должен спросить, вы пробовали это? При выполнении gradle build --scanв ЦМД, вам будет предложено: Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service. Do you accept these terms? [yes, no]. Вы должны написать вручную yes. Сразу после этого вы получите сообщение: Publishing build scan... https://gradle.com/s/a12en0dasdu(случайно поместите ссылку того же типа). Так что я верю, что это предупреждает тебя раньше. (1/2)
триман
1
Вы можете перейти по ссылке и сразу же удалить скан, без электронной почты или чего-либо еще. Как ответ, я считаю, что это действительно отвечает на вопрос . Фактически, он показывает вам дополнительную информацию о ваших зависимостях (и дополнительную милю: дополнительную информацию для всей сборки) по сравнению с другими подходами. Если вы не находите это по своему вкусу, это нормально, но это (насколько мне известно) самый полный инструмент для работы на данный момент, поэтому важно иметь это в виду. Наконец, это продвигается самим Gradle, это буквально их первый гид (2/2)
tryman
@Michal Извините, забыл пометить вас раньше, чтобы вы, возможно, не видели мои комментарии. (Я также отредактировал пост, чтобы включить комментарии, с которыми я ответил вам.)
tryman
2
Я этого не пробовал - спасибо за разъяснения по поводу принятия условий. Я удалил свой -1.
Михал
9
В Android Studio
1) Откройте терминал и убедитесь, что вы находитесь в корневой папке проекта.
для меня это работало без "./", вот так: gradlew app: зависимости.
Гилад Левинсон
7
Я также нашел полезным запустить это:
./gradlew dI --dependency <your library>
Это показывает, как разрешаются зависимости ( dependencyInsight), и помогает вам отладить, где вам нужно принудительно включать или исключать библиотеки в вашемbuild.gradle
Обратите внимание, что вам может потребоваться сделать что-то подобное, ./gradlew <module_directory>:<module_name>:dependenciesесли у модуля есть дополнительный каталог, прежде чем он достигнет своего build.gradle. Если есть сомнения, делайте, ./gradlew tasks --allчтобы проверить имя.
Это даст вам все зависимости в вашем проекте и подпроектах вместе со всеми сторонними зависимостями.
Если вы хотите сделать это программным способом, то вам понадобится пользовательский рендеринг зависимостей - вы можете начать с расширения, AsciiDependencyReportRendererкоторое по умолчанию выводит ascii-график зависимостей.
gradle dependencies
должно сработать. Это безумие, как у всех,gradlew app:dependencies
вероятно, потому что Android.Ответы:
Для Android используйте эту строку
или если у вас есть упаковщик:
где
app
находится ваш проектный модульКроме того, если вы хотите проверить , если что - то
compile
противtestCompile
противandroidTestCompile
зависимости, а также то , что тянет его в:источник
./gradlew
вместоgradle
Project 'app' not found in root project
при запуске этих команд. Раствор Бенджаминов однако работал../gradlew :dependencies
будет работать. Он перечислит зависимости для всех ваших проектов, но легко найти правильный.Вы можете отобразить дерево зависимостей с помощью команды
gradle dependencies
. Для получения дополнительной информации обратитесь к разделу 11.6.4 Список зависимостей проекта в интерактивном руководстве пользователя.источник
build.gradle
файл), или ваш файл сборки не применяет никакой плагин../gradlew dependencies
Если вам трудно ориентироваться в выводе консоли
gradle dependencies
, вы можете добавить плагин отчетов проекта :И сгенерируйте отчет HTML, используя:
Отчет обычно можно найти в
build/reports/project/dependencies/index.html
Это выглядит так:
источник
gradle htmlDependencyReport
В Android Studio (по крайней мере, начиная с версии 2.3.3) вы можете запустить команду прямо из пользовательского интерфейса:
Нажмите на вкладку Gradle, а затем дважды щелкните : yourmodule -> Tasks -> android -> androidDependencies
Дерево будет отображаться на вкладке Консоль Gradle
источник
Часто полный
test
,compile
иandroidTestCompile
граф зависимостей слишком сложен для изучения вместе. Если вы просто хотитеcompile
граф зависимостей, вы можете использовать:Источник: Gradle Docs раздел 4.7.6.
Примечание:
compile
было объявлено устаревшим в более поздних версиях Gradle, и в более поздних версиях рекомендуется перевести все вашиcompile
зависимости наimplementation
. Пожалуйста, посмотрите этот ответ здесьисточник
Если вы хотите визуализировать свои зависимости в графе, вы можете использовать плагин gradle-dependency-graph-generator .
Как правило , выход из этого плагина можно найти в сборках / отчетах / зависимости граф каталога и содержит три файла (.dot | .png | .svg) , если вы используете 0.5.0 версии плагина.
Пример графика зависимостей в реальном приложении ( Chess Clock ):
источник
Для Android введите это в терминале
В нем будут перечислены все зависимости и те, с более новыми версиями для вас, чтобы обновить как
источник
Ситуация в Gradle продвинулась вперед, поэтому я считаю, что этот вопрос заслуживает другого ответа.
Начиная с Gradle 4.3, были введены « сборочные сканы ». Вся соответствующая информация доступна в документации Gradle ( 1 , 2 ). Для меня это, кажется, самый простой способ проверить ваши зависимости (и, как правило, вашу сборку) четко и организованно.
Их очень легко создать, просто выполните:
(или
./gradlew build --scan
если вы используете обертку)Это создает случайно сгенерированную ссылку, где вы можете увидеть ваш скан. Открывая эту ссылку, вы вводите свой адрес электронной почты и получаете полный контроль над ссылкой: например. поделиться или удалить его. В нем много информации о вашей сборке , а не только о зависимостях. Вы можете видеть свои зависимости, их иерархии, репозиторий, используемый для их получения, а также множество других вещей о вашей сборке, а именно, ее производительность (которая представляет интерес для больших сложных сборок), ваши тесты, даже вывод на консоль и ваш конфигурация системы, какие JDK и JVM использовались, максимальный размер кучи и т. д.
Это принтскрин из фиктивного проекта:
Однако обратите внимание, что информация о вашем процессе сборки будет отправлена на серверы Gradle. Вы можете полностью удалить его, когда закончите проверку.
Наконец, вы также можете использовать сборку сканов с версиями Gradle более ранних, чем 4.3, вам просто нужно вручную добавить плагин сканов в ваш buildscript.
Редактировать :
Включая некоторые отзывы из комментариев, некоторые дополнительные примечания:
1) Очень трудно сделать это по ошибке или без понимания того, что некоторая информация для вашей сборки будет онлайн (частной для вас, с возможностью ее удаления, но все еще онлайн). ).
При выполнении
gradle build --scan
появляется следующее сообщение:Вы должны явно написать,
yes
а затем сообщение продолжается:2) В Gradle Enterprise вы можете размещать сканы сборки gradle на своих собственных серверах. Однако у меня нет никакого опыта в этом, и мой предложенный подход был о стандартном распределении Gradle, используя серверы Gradle для ваших проверок сборки.
3) Сам Gradle продвигает сканирование сборки как способ решения большинства ваших проблем со сборкой.
источник
gradle build --scan
вы публикуете информацию о вашей сборке где-то в Интернете - и чтобы удалить ее, вы должны связать ее с рабочим адресом электронной почты.gradle build --scan
в ЦМД, вам будет предложено:Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service. Do you accept these terms? [yes, no]
. Вы должны написать вручнуюyes
. Сразу после этого вы получите сообщение:Publishing build scan... https://gradle.com/s/a12en0dasdu
(случайно поместите ссылку того же типа). Так что я верю, что это предупреждает тебя раньше. (1/2)В Android Studio
1) Откройте терминал и убедитесь, что вы находитесь в корневой папке проекта.
2) Запустите
./gradlew app:dependencies
(если не используете упаковщик gradle, попробуйтеgradle app:dependencies
)Обратите внимание, что запуск
./gradle dependencies
даст вам только дерево зависимостей корневой папки проекта, поэтому./gradlew app:dependencies
важно упомянуть приложение вышеописанным способом, т.е.источник
Я также нашел полезным запустить это:
Это показывает, как разрешаются зависимости (
dependencyInsight
), и помогает вам отладить, где вам нужно принудительно включать или исключать библиотеки в вашемbuild.gradle
См .: https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html.
источник
Обратите внимание, что вам может потребоваться сделать что-то подобное,
./gradlew <module_directory>:<module_name>:dependencies
если у модуля есть дополнительный каталог, прежде чем он достигнет своего build.gradle. Если есть сомнения, делайте,./gradlew tasks --all
чтобы проверить имя.источник
Для меня это была просто одна команда
в build.gradle добавить
plugin
а затем перейдите к cmd и выполните следующую команду
Это даст мне HTML отчет WOW Html report 💕
Это все, мой господин.
источник
Для последних версий Gradle (я тестировал с версией 6.4.1):
или если вы используете Gradle Wrapper:
источник
Если вы хотите все зависимости в одном файле в конце в течение двух шагов. Добавьте это к себе
build.gradle.kts
в корень вашего проекта:Затем примените:
Это даст вам все зависимости в вашем проекте и подпроектах вместе со всеми сторонними зависимостями.
Если вы хотите сделать это программным способом, то вам понадобится пользовательский рендеринг зависимостей - вы можете начать с расширения,
AsciiDependencyReportRenderer
которое по умолчанию выводит ascii-график зависимостей.источник