"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso organizar um projeto Go com uma biblioteca e uma CLI no mesmo diretório?

Como posso organizar um projeto Go com uma biblioteca e uma CLI no mesmo diretório?

Publicado em 23/12/2024
Navegar:208

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

Organizando código em projetos de vários pacotes

Em projetos Go que exigem uma biblioteca e uma interface de linha de comando (CLI), é comum encontrar o problema de ter vários pacotes no mesmo diretório.

Uma dessas estruturas de projeto:

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

O pacote main e func main são essenciais para iniciar a execução em Go, enquanto uma biblioteca requer um pacote separado, como o pacote myproject. No entanto, ao importar este projeto, o compilador Go pode objetar:

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

Solução: pacotes aninhados

Para resolver esse problema, coloque os dois pacotes em uma nova pasta dentro do mesmo diretório que main.go. Lembre-se de atualizar as instruções de importação para fazer referência ao novo pacote do seu $GOPATH.

Por exemplo:

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

Em main.go, importe o pacote da biblioteca da seguinte maneira:

import "../library/myproject"

Essa abordagem garante uma separação clara entre os biblioteca e CLI, permitindo que ambos residam no mesmo diretório.

Notas adicionais

  • Mover pacotes para uma estrutura aninhada não afeta a funcionalidade de qualquer pacote.
  • os comandos go run e go build podem ser usados ​​para testar e construir o projeto.
  • Consulte o link fornecido para obter mais detalhes sobre as diferenças entre go build file.go e vá construir.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3