@OliverCharlesworth, utilice el botón Cerrar para marcar la respuesta como un duplicado
030
1
@ user3286701 ¿tal vez podría aceptar una de las respuestas?
030
66
gradle dependenciesDeberia trabajar. Es una locura como todos gradlew app:dependenciesprobablemente porque Android.
prayagupd
2
@prayagupd Esta debería ser la respuesta. La pregunta es sobre gradle. Después de leer las respuestas altamente calificadas, abrí el terminal y cd'ed al directorio de un proyecto general que utiliza gradle. Ejecuté 'aplicación gradle: dependencias' y recibí el error 'Error de compilación' aunque no tenía planeado compilar nada. Mi proyecto funciona bien y solo quería ver las dependencias.
ka3ak
Respuestas:
604
Para Android, usa esta línea
gradle app:dependencies
o si tienes una envoltura de gradle:
./gradlew app:dependencies
¿Dónde appestá tu módulo de proyecto?
Además, si desea verificar si algo es compilevs testCompilevs androidTestCompiledependencia, así como lo que lo atrae:
Ah, tuve que poner el nombre del módulo allí. Por eso ... ¡Gracias!
Jenix
Acabo de empezar a estudiar gradle ahora, un poco confundido. ¿Puedo tratar gradlew como gradle, es decir, puedo ingresar las mismas opciones / comandos que gradlew con gradlew?
Jenix
1
@Jenix sí, si está utilizando un envoltorio, simplemente use ./gradlewen lugar degradle
Chad Bingham el
2
Me sale el error Project 'app' not found in root projectal ejecutar estos comandos. Sin embargo, la solución de Benjamins funcionó.
krock
55
De hecho ./gradlew :dependenciesfuncionará. Enumerará las dependencias para todos sus proyectos, pero es fácil encontrar la correcta.
dirkjot
240
Puede representar el árbol de dependencias con el comando gradle dependencies. Para obtener más información, consulte la sección 11.6.4 Listado de dependencias del proyecto en la guía del usuario en línea.
Cuando hago esto con mi proyecto de Android, todo lo que obtengo es este resultado: pastebin.com/fHFigAuY ¿Sugerencias?
Nilzor
3
@Nilzor Probablemente esté ejecutando el comando en el directorio incorrecto (que no contiene el build.gradlearchivo) o su archivo de compilación no aplica ningún complemento.
Benjamin Muschko
66
puede obtener dependencias para un proyecto específico usando gradle: project: dependencies
@ user3526 haga clic en la etiqueta "gradle" que se encuentra en el lado derecho de la pantalla. Mire la imagen adjunta como referencia
Nicolás Carrasco
2
Descubrí que esto crea una lista plana en AS 3.2.0, en lugar de un árbol. Sin embargo, la variante de línea de comando crea un árbol.
Tom
55
@Tom ejecuta la tarea 'dependencias' en la categoría 'ayuda' no 'android'. Se muestra como un árbol
Maxim Berezovsky
27
A menudo, el gráfico completo test, compiley de androidTestCompiledependencia es demasiado para examinarlo en conjunto. Si simplemente desea el compilegráfico de dependencia, puede usar:
Nota: compileha quedado en desuso en las versiones más recientes de Gradle y en versiones más recientes se recomienda cambiar todas sus compiledependencias implementation. Por favor vea esta respuesta aquí
En general, la salida de este complemento se puede encontrar en el directorio build / reports / dependency-graph y contiene tres archivos (.dot | .png | .svg) si está utilizando la versión 0.5.0 del complemento.
Ejemplo de gráfico de dependencias en una aplicación real ( Chess Clock ):
Hola David, hice lo que me dijeron en las instrucciones del complemento. Apliqué el complemento en el proyecto gradle pero no veo ninguna carpeta de informes en el directorio de compilación. ¿Hay algo que debamos hacer además de compilar y ejecutar el proyecto?
Las cosas han avanzado en Gradle, así que creo que esta pregunta merece otra respuesta.
Desde Gradle 4.3, se introdujeron los " análisis de compilación ". Toda la información relevante está disponible en los documentos de Gradle ( 1 , 2 ). Para mí, esta parece ser la forma más fácil de verificar sus dependencias (y generalmente su compilación) de una manera clara y organizada.
Son muy fáciles de crear, solo ejecute:
gradle build --scan
(o ./gradlew build --scansi usa una envoltura)
Esto produce un enlace generado aleatoriamente donde puede ver su escaneo. Al abrir ese enlace, ingresa su correo electrónico y obtiene el control total del enlace: por ejemplo. compártelo o bórralo. Tiene mucha información sobre su compilación , no solo dependencias. Puede ver sus dependencias, sus jerarquías, el repositorio utilizado para obtenerlas, pero también muchas otras cosas sobre su compilación, a saber, su rendimiento (que es de interés en compilaciones grandes y complejas), sus pruebas, incluso la salida de su consola y su configuración del sistema, qué JDK y JVM se utilizaron, tamaño máximo de almacenamiento dinámico, etc.
Esta es una pantalla de impresión de un proyecto simulado:
Una exploración de compilación es un registro compartible de una compilación que proporciona información sobre lo que sucedió y por qué. Puede crear una exploración de compilación en scans.gradle.com de forma gratuita.
Sin embargo, tenga en cuenta que esa información para su proceso de compilación se enviará a los servidores de Gradle. Tiene control total para eliminarlo cuando haya terminado con su inspección.
Finalmente, también puede usar escaneos de compilación con versiones de Gradle anteriores a 4.3, solo tiene que agregar manualmente el complemento de escaneos en su buildscript.
Editar :
incorporando algunos comentarios de los comentarios, algunas notas adicionales:
1) Es muy difícil hacerlo por error o sin comprender que cierta información para su compilación estará en línea (privada para usted, con la capacidad de eliminarla, pero aún en línea )
Al ejecutar gradle build --scanaparece el siguiente mensaje:
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]
Tienes que escribir explícitamente yesy luego el mensaje continúa:
2) En Gradle Enterprise puede alojar análisis de compilación de gradle en sus propios servidores. Sin embargo, no tengo experiencia en esto y mi enfoque propuesto era sobre la distribución estándar de Gradle, utilizando los servidores de Gradle para sus análisis de compilación.
3) Gradle promueve los análisis de compilación como la forma de lidiar con la mayoría de sus problemas de compilación.
Lamento rechazar la respuesta, pero en mi opinión no responde la pregunta y no advierte con suficiente claridad que al gradle build --scanpublicar detalles de su compilación en algún lugar de Internet, y para eliminarla debe asociarla con una dirección de correo electrónico que funcione.
Michal
1
Hola Michal, puedes hacer un voto negativo si te sientes así. Sin embargo, tengo que preguntar, ¿lo intentaste? Al ejecutar gradle build --scancmd, se le pregunta: 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]. Tienes que escribir manualmente yes. Justo después de eso, obtienes el mensaje: Publishing build scan... https://gradle.com/s/a12en0dasdu(pon al azar un enlace del mismo tipo). Así que creo que te advierte apropiadamente antes. (1/2)
tryman
1
Puede visitar el enlace y eliminar el escaneo de inmediato, sin un correo electrónico ni nada. Como respuesta, creo que responde la pregunta . De hecho, le muestra información adicional sobre sus dependencias (y va más allá: información adicional para toda la compilación también) en comparación con otros enfoques. Si no lo encuentra a su gusto, está totalmente bien, pero es (que yo sepa) la herramienta más completa en este momento para el trabajo, por lo que es valioso tenerlo en cuenta. Finalmente, es promovida por Gradle, es literalmente su primera guía (2/2)
tryman
@Michal Lo siento, olvidé etiquetarte antes, así que es posible que no hayas visto mis comentarios. (También edité la publicación para incorporar los comentarios con los que te respondí.)
tryman
2
No lo he intentado, gracias por aclarar sobre la aceptación de los términos. Quité mi -1.
Michal
9
En Android Studio
1) Abra la terminal y asegúrese de estar en la carpeta raíz del proyecto.
2) Ejecutar ./gradlew app:dependencies (si no usa gradle wrapper, intente gradle app:dependencies)
Tenga en cuenta que la ejecución ./gradle dependenciessolo le dará un árbol de dependencia de la carpeta raíz del proyecto, por lo que ./gradlew app:dependencieses importante mencionar la aplicación de la manera anterior .
para mí funcionó sin "./", así: aplicación gradlew: dependencias
Gilad Levinson
7
También me pareció útil ejecutar esto:
./gradlew dI --dependency <your library>
Esto muestra cómo se resuelven las dependencias ( dependencyInsight) y lo ayuda a depurar dónde necesita forzar o excluir bibliotecas en subuild.gradle
Tenga en cuenta que es posible que deba hacer algo como ./gradlew <module_directory>:<module_name>:dependenciessi el módulo tiene un directorio adicional antes de llegar a su build.gradle. En caso de duda, ./gradlew tasks --allverifique el nombre.
Esto le dará todas las dependencias en su proyecto y subproyectos junto con todas las dependencias de terceros.
Si desea hacer esto de forma programática, necesitará un renderizador personalizado de las dependencias; puede comenzar extendiendo el AsciiDependencyReportRendererque imprime un gráfico ascii de las dependencias de forma predeterminada.
gradle dependencies
Deberia trabajar. Es una locura como todosgradlew app:dependencies
probablemente porque Android.Respuestas:
Para Android, usa esta línea
o si tienes una envoltura de gradle:
¿Dónde
app
está tu módulo de proyecto?Además, si desea verificar si algo es
compile
vstestCompile
vsandroidTestCompile
dependencia, así como lo que lo atrae:fuente
./gradlew
en lugar degradle
Project 'app' not found in root project
al ejecutar estos comandos. Sin embargo, la solución de Benjamins funcionó../gradlew :dependencies
funcionará. Enumerará las dependencias para todos sus proyectos, pero es fácil encontrar la correcta.Puede representar el árbol de dependencias con el comando
gradle dependencies
. Para obtener más información, consulte la sección 11.6.4 Listado de dependencias del proyecto en la guía del usuario en línea.fuente
build.gradle
archivo) o su archivo de compilación no aplica ningún complemento../gradlew dependencies
Si le resulta difícil navegar por la salida de la consola
gradle dependencies
, puede agregar el complemento de informes del proyecto :Y generar un informe HTML usando:
El informe normalmente se puede encontrar en
build/reports/project/dependencies/index.html
Se parece a esto:
fuente
gradle htmlDependencyReport
En Android Studio (al menos desde v2.3.3) puede ejecutar el comando directamente desde la interfaz de usuario:
Haga clic en la pestaña Gradle y luego haga doble clic en : su módulo -> Tareas -> android -> androidDependencies
El árbol se mostrará en la pestaña Gradle Console
fuente
A menudo, el gráfico completo
test
,compile
y deandroidTestCompile
dependencia es demasiado para examinarlo en conjunto. Si simplemente desea elcompile
gráfico de dependencia, puede usar:Fuente: Gradle docs sección 4.7.6
Nota:
compile
ha quedado en desuso en las versiones más recientes de Gradle y en versiones más recientes se recomienda cambiar todas suscompile
dependenciasimplementation
. Por favor vea esta respuesta aquífuente
Si desea visualizar sus dependencias en un gráfico, puede usar el complemento gradle-dependency-graph-generator .
En general, la salida de este complemento se puede encontrar en el directorio build / reports / dependency-graph y contiene tres archivos (.dot | .png | .svg) si está utilizando la versión 0.5.0 del complemento.
Ejemplo de gráfico de dependencias en una aplicación real ( Chess Clock ):
fuente
Para Android, escriba esto en la terminal
Enumerará todas las dependencias y las que tengan versiones más nuevas para que pueda actualizar como
fuente
Las cosas han avanzado en Gradle, así que creo que esta pregunta merece otra respuesta.
Desde Gradle 4.3, se introdujeron los " análisis de compilación ". Toda la información relevante está disponible en los documentos de Gradle ( 1 , 2 ). Para mí, esta parece ser la forma más fácil de verificar sus dependencias (y generalmente su compilación) de una manera clara y organizada.
Son muy fáciles de crear, solo ejecute:
(o
./gradlew build --scan
si usa una envoltura)Esto produce un enlace generado aleatoriamente donde puede ver su escaneo. Al abrir ese enlace, ingresa su correo electrónico y obtiene el control total del enlace: por ejemplo. compártelo o bórralo. Tiene mucha información sobre su compilación , no solo dependencias. Puede ver sus dependencias, sus jerarquías, el repositorio utilizado para obtenerlas, pero también muchas otras cosas sobre su compilación, a saber, su rendimiento (que es de interés en compilaciones grandes y complejas), sus pruebas, incluso la salida de su consola y su configuración del sistema, qué JDK y JVM se utilizaron, tamaño máximo de almacenamiento dinámico, etc.
Esta es una pantalla de impresión de un proyecto simulado:
Sin embargo, tenga en cuenta que esa información para su proceso de compilación se enviará a los servidores de Gradle. Tiene control total para eliminarlo cuando haya terminado con su inspección.
Finalmente, también puede usar escaneos de compilación con versiones de Gradle anteriores a 4.3, solo tiene que agregar manualmente el complemento de escaneos en su buildscript.
Editar :
incorporando algunos comentarios de los comentarios, algunas notas adicionales:
1) Es muy difícil hacerlo por error o sin comprender que cierta información para su compilación estará en línea (privada para usted, con la capacidad de eliminarla, pero aún en línea )
Al ejecutar
gradle build --scan
aparece el siguiente mensaje:Tienes que escribir explícitamente
yes
y luego el mensaje continúa:2) En Gradle Enterprise puede alojar análisis de compilación de gradle en sus propios servidores. Sin embargo, no tengo experiencia en esto y mi enfoque propuesto era sobre la distribución estándar de Gradle, utilizando los servidores de Gradle para sus análisis de compilación.
3) Gradle promueve los análisis de compilación como la forma de lidiar con la mayoría de sus problemas de compilación.
fuente
gradle build --scan
publicar detalles de su compilación en algún lugar de Internet, y para eliminarla debe asociarla con una dirección de correo electrónico que funcione.gradle build --scan
cmd, se le pregunta: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]
. Tienes que escribir manualmenteyes
. Justo después de eso, obtienes el mensaje:Publishing build scan... https://gradle.com/s/a12en0dasdu
(pon al azar un enlace del mismo tipo). Así que creo que te advierte apropiadamente antes. (1/2)En Android Studio
1) Abra la terminal y asegúrese de estar en la carpeta raíz del proyecto.
2) Ejecutar
./gradlew app:dependencies
(si no usa gradle wrapper, intentegradle app:dependencies
)Tenga en cuenta que la ejecución
./gradle dependencies
solo le dará un árbol de dependencia de la carpeta raíz del proyecto, por lo que./gradlew app:dependencies
es importante mencionar la aplicación de la manera anterior .fuente
También me pareció útil ejecutar esto:
Esto muestra cómo se resuelven las dependencias (
dependencyInsight
) y lo ayuda a depurar dónde necesita forzar o excluir bibliotecas en subuild.gradle
Ver: https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html
fuente
Tenga en cuenta que es posible que deba hacer algo como
./gradlew <module_directory>:<module_name>:dependencies
si el módulo tiene un directorio adicional antes de llegar a su build.gradle. En caso de duda,./gradlew tasks --all
verifique el nombre.fuente
Para mí, fue simplemente un comando
en build.gradle add
plugin
y luego ve a cmd y ejecuta el siguiente comando
Esto me da un informe HTML WOW Html report 💕
Eso es todo mi señor.
fuente
Para versiones recientes de Gradle (probé con la versión 6.4.1):
o si estás usando Gradle Wrapper:
fuente
Si desea todas las dependencias en un solo archivo al final dentro de dos pasos. Agregue esto a su
build.gradle.kts
en la raíz de su proyecto:Luego aplique:
Esto le dará todas las dependencias en su proyecto y subproyectos junto con todas las dependencias de terceros.
Si desea hacer esto de forma programática, necesitará un renderizador personalizado de las dependencias; puede comenzar extendiendo el
AsciiDependencyReportRenderer
que imprime un gráfico ascii de las dependencias de forma predeterminada.fuente