¿Alguna vez te has preguntado cuáles son las dependencias de tus proyectos de programación? Saber las dependencias es crucial para mantener tus proyectos actualizados y asegurarte de que todo funcione correctamente. En este artículo, te presentamos cuatro maneras de obtener esta información.
Usar GitHub
Si tus proyectos están en Github, puedes obtener información sobre sus dependencias directamente desde la plataforma.
Simplemente ve a la pestaña “Insights” y haz clic en “Dependency graph”. También puedes agregar /network/dependencies a la URL de tu proyecto para acceder directamente a esta funcionalidad., por ejemplo
https://github.com/javatlacati/ng-quiz/network/dependencies
Esta opción está disponible tanto para cuentas gratuitas como de pago y detecta de manera aceptable para proyectos en lenguajes muy variados como
- node
- maven
- gradle
- python
Usar un artifactory
Si trabajas con proyectos en Java, puedes usar un Artifactory (también se les conoce como maven artifactory). Un Artifactory es un sistema que te permite, entre otras cosas, mantener un cache de las dependencias. Entre las ventajas que puede tener un artifactory se pueden mencionar:
Puedes usarlo para administrar tus propios repositorios de dependencias para:
- Maven
- Node
- Docker
Hay varias opciones populares en el mercado, como JFrog Artifactory y Sonatype Nexus Repository.
Además de poder obtener estadísticas de las dependencias que tus desarrolladores han usado podrás limitar la descarga de algunas de ellas usando algún criterio como el tipo de licencia o la calificación de vulnerabilidad.
Usar Bazel
Bazel es una herramienta de compilación desarrollada por Google para compilar muchos proyectos de distintas tecnologías.
Para el caso de las dependencias externas (es decir librerías que usas que no forman parte de los códigos que has desarrollado) Bazel utiliza un archivo llamado WORKSPACE, para el resto usa archivos BUILD por cada paquete o subpaquete de compilación, esto con la finalidad de hacer una compilación parcial, reducirte el tiempo de compilaciones repetitivas y detectar problemas de compatibilidad de dependencias de manera rápida.
Bazel incluye un comando para ver el árbol de dependencias de tus proyectos, por ejemplo
blaze query "kind(rule, deps(//ruta/a/tudependencia))" --output=graph
Hacerlo tu mismo
Si prefieres hacer las cosas a tu manera, puedes obtener información sobre las dependencias de tus proyectos de programación de varias maneras. A continuación te presento algunas opciones lenguaje por lenguaje.
Obtener dependencias en Java
Si usas maven, tienes dos opciones, usar el plugin de dependencias o puedes generar lo que se conoce como pom efectivo que contiene el detalle ampliado de absolutamente toda la configuración del proyecto, y tener la información en XML para procesarla al correr el comando
mvn help:effective-pom
Si trabajas con Gradle, puedes usar una tubería para enviar el resultado de la tarea de dependencias a un archivo por ejemplo
gradlew dependencies > dependencias.txt
o usar el plugin de reporte de proyecto
gradlew dependencyReport