Usando gradle para encontrar el árbol de dependencia

¿Es posible usar gradle para producir un árbol de lo que depende de qué?

Tengo un proyecto y me gustaría conocer todas las dependencias para que pueda podarlo un poco con declaraciones futuras, etc.

Para Android, use esta línea

gradle app:dependencies 

o si tienes un contenedor gradle:

 ./gradlew app:dependencies 

donde la app es su módulo de proyecto.

Además, si desea comprobar si algo es compile contra testCompile vs androidTestCompile dependency, así como también lo que está tirando de él:

 ./gradlew :app:dependencyInsight --configuration compile --dependency  ./gradlew :app:dependencyInsight --configuration testCompile --dependency  ./gradlew :app:dependencyInsight --configuration androidTestCompile --dependency  

Puede representar el árbol de dependencias con el comando de gradle dependencies . Para obtener más información, consulte la sección 11.6.4 Listado de dependencias de proyecto en la guía del usuario en línea.

Si le resulta difícil navegar el resultado de la consola de gradle dependencies , puede agregar el plugin de informes del proyecto :

 apply plugin: 'project-report' 

Y genere un informe HTML usando:

 $ ./gradlew htmlDependencyReport 

El informe normalmente se puede encontrar en build/reports/project/dependencies/index.html

Se parece a esto: enter image description here

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 : yourmodule -> Tasks -> android -> androidDependencies

El árbol se mostrará en la pestaña Gradle Console

Una imagen vale más que mil palabras

A menudo, el gráfico de dependencia completo de test , compile y androidTestCompile es demasiado para examinarlos juntos. Si simplemente desea el gráfico de dependencia de compile , puede usar:

 ./gradlew app:dependencies --configuration compile 

Fuente: Gradle documentos sección 4.7.6

Nota: la compile ha quedado obsoleta en las versiones más recientes de Gradle y, en versiones más recientes, se recomienda cambiar todas las dependencias de compile a la implementation . Por favor mira esta respuesta aquí

Si desea visualizar sus dependencias en un gráfico, puede usar el complemento gradle-dependency-graph-generator .

Ejemplo de gráfico de dependencias en una aplicación real ( Chess Clock ):

grafico

En Android Studio

1) Abra la terminal y asegúrese de estar en la carpeta raíz del proyecto.

2) Ejecuta la ./gradlew app:dependencies (si no está usando gradle wrapper, prueba la gradle app:dependencies )

Tenga en cuenta que la ejecución de ./gradle dependencies solo le dará el árbol de dependencias de la carpeta raíz del proyecto, por lo que es importante mencionar la aplicación de la manera anterior, es decir, la ./gradlew app:dependencies .

Tenga en cuenta que puede necesitar hacer algo como ./gradlew ::dependencies si el módulo tiene un directorio adicional antes de llegar a build.gradle. En caso de duda, haga ./gradlew tasks --all para verificar el nombre.

También encontré útil para ejecutar esto:

 ./gradlew dI --dependency  

Esto muestra cómo se resuelven las dependencias ( dependencyInsight ) y lo ayudan a depurar en dónde necesita forzar o excluir bibliotecas en su build.gradle

Ver: https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html

Deberías usar esto: dependencias gradle para windows