"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo organizar un proyecto Go con una biblioteca y una CLI en el mismo directorio?

¿Cómo puedo organizar un proyecto Go con una biblioteca y una CLI en el mismo directorio?

Publicado el 2024-12-23
Navegar:623

How Can I Organize a Go Project with Both a Library and a CLI in the Same Directory?

Organización de código en proyectos de paquetes múltiples

En proyectos Go que requieren tanto una biblioteca como una interfaz de línea de comandos (CLI), es común encontrar este problema de tener varios paquetes en el mismo directorio.

Una de esas estructuras de proyecto:

whatever.io/
    myproject/
        main.go
        myproject.go

El paquete main y func main son esenciales para iniciar la ejecución en Go, mientras que una biblioteca requiere un paquete separado, como el paquete myproject. Sin embargo, al importar este proyecto, el compilador de Go puede objetar:

main.go:5:2: found packages myproject (myproject.go) and main (main.go) in $GOPATH/src/whatever.io/myproject

Solución: Paquetes anidados

Para resolver este problema, coloque ambos paquetes dentro de una nueva carpeta dentro del mismo directorio que main.go. Recuerde actualizar las declaraciones de importación para hacer referencia al nuevo paquete de su $GOPATH.

Por ejemplo:

whatever.io/
    myproject/
        library/
            myproject.go
        main.go

En main.go, importe el paquete de la biblioteca de la siguiente manera:

import "../library/myproject"

Este enfoque garantiza una separación clara entre los biblioteca y CLI y permite que ambos residan en el mismo directorio.

Notas adicionales

  • Mover paquetes a una estructura anidada no afecta la funcionalidad de cualquiera de los paquetes.
  • Los comandos go run y go build se pueden usar para probar y construir el proyecto.
  • Consulte el enlace proporcionado para obtener más detalles sobre las diferencias entre go build file.go y ve a construir.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3