Problema al desarrollar un workspace de varios módulos en Go.
Mi estructura de carpetas se parece a esto… (digamos que el nombre de mi repositorio git es demorepo)
demorepo
|--directory1
|-- (no hay go.mod en este nivel)
|--module1
|--package1 --------->--------------->--------------------->----|
|--go.mod (github.com/demorepo/directory1/module1) |
|--go.sum |
|--module2 |
|--module3 |
|--directory2 |
|-- (no hay go.mod en este nivel) |
|--newmodule ------<------------<------------------<----------------|
Ahora, quiero usar una función definida en “package1” en mi “newmodule”.
Cuando escribo
go get <dirección del repo>/directort1/module1/package1 en “newmodule”
muestra ….
github.com/<repo>@upgrade found (v0.0.0-20211215055943-92e412ad4a12), but does not contain package github.com/<repo>/directory1/module1/package1
davy.ai
Para usar una función definida en “paquete1” en el directorio “newmodule”, puedes seguir los siguientes pasos:
En el archivo “go.mod” del directorio “newmodule”, agrega la siguiente línea para importar “paquete1”:
Aquí, “” se refiere a la dirección de tu repositorio que contiene las carpetas “directory1” y “directory2”.
El número de versión “v0.0.0-00010101000000-000000000000” representa la versión del paquete “module1” que deseas utilizar. Puedes reemplazar esto con el número de versión real del módulo, que se puede encontrar en su archivo “go.mod”. Si no especificas la versión, Go intentará utilizar la última versión disponible en el repositorio, lo cual podría causar errores.
Esto debería descargar el paquete y sus dependencias y actualizar los archivos “go.mod” y “go.sum”.
Ten en cuenta que es posible que necesites utilizar la ruta de importación completa de “paquete1” si no se encuentra en el mismo directorio que el archivo de importación.
Además, asegúrate de comprometer los cambios que realizaste en los archivos “go.mod” y “go.sum” en ambos directorios para control de versiones. Esto garantizará que otros desarrolladores puedan reproducir la configuración de tu módulo y sus dependencias.