Si bien en Go ya existe el comando go get
, hace falta un gestor de dependencias como Composer, Cargo o NPM para este lenguaje tan maravilloso.
Afortunadamente ya existe un gestor de dependencias para Go, el cual se llama dep y que funciona igual que los otros gestores de dependencias.
¿Para qué un gestor de dependencias?
Un gestor de dependencias es algo más que una herramienta para mantener actualizadas las dependencias de un programa. Permite crear y publicar proyectos, iniciar uno nuevo, instalar dependencias (este es su principal uso) y otras cosas más.
Requisitos
Recuerda haber instalado Go.
El gestor de dependencias de Go: dep
dep es el gestor de dependencias de Go, es un gestor oficial. Citando lo que dice en el repositorio oficial:
dep es una herramienta de gestión de dependencias para Go. Requiere Go 1.9 o más reciente para compilar.
Instalar dep
El gestor viene en formato ejecutable; es un simple archivo binario. Es decir, se descarga un .exe (en el caso de Windows) y ya está.
Para obtener la última versión de dep, podemos visitar esta página. Ahí, según nuestro sistema operativo, descargamos el ejecutable.
Como yo tengo Windows de 64 bits, selecciono dep-windows-amd64.exe.
Cuando lo hayamos descargado, lo movemos a una carpeta de donde no lo vayamos a quitar. Yo lo puse en mi disco local D:
Notar por favor que también le cambié el nombre para dejarlo simplemente en dep.exe. Luego basta añadir ese directorio a la variable PATH en Windows, como se ve en este post. Queda así:
Gracias a que fue agregado a la variable PATH, podemos ejecutar dep desde cualquier lugar en la terminal. Para comprobar que lo hicimos bien, checamos con:
dep version
Y listo, se debe ver algo así:
Crear proyecto en Go con dep
Debemos movernos a GOPATH/src, crear una carpeta ahí, entrar en ella y ejecutar dep init
. Eso creará a Gopkg.toml, Gopkg.lock y un directorio vendor:
En ese directorio ya podemos crear nuestros archivos con extensión go, pero sobre todo, podemos agregar dependencias.
Agregar dependencia a Go con dep
Para agregar una dependencia (por ejemplo, la de MongoDB, del cual haré un tutorial más tarde) se ejecuta el siguiente comando dentro de la carpeta del proyecto:
dep ensure -add github.com/mongodb/mongo-go-driver/mongo
Con eso agregamos una dependencia de cualquier tipo, la cual estará dentro de vendor y también dentro del archivo toml.
Actualizar todas las dependencias
Para actualizar todas las dependencias de nuestro proyecto, ejecutamos:
dep ensure -update
Si deseamos actualizar únicamente una dependencia, entonces ejecutamos:
dep ensure -update nombre_o_ruta_de_dependencia
Conclusión
Puedes leer más sobre dep aquí.