Eu usei, GOPATH
mas para este problema atual que estou enfrentando, não ajuda. Quero poder criar pacotes específicos para um projeto:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
Eu tentei várias maneiras, mas como faço para obter package1.go
a trabalhar no binary1.go
ou binary2.go
e assim por diante?
Por exemplo; Desejo import "package1"
poder executar e, em seguida, executar go build binary1.go
e tudo funciona bem sem o erro de que o pacote não pode ser encontrado em GOROOT
ou GOPATH
. A razão pela qual eu preciso desse tipo de funcionalidade é para projetos de grande escala; Eu não quero ter que fazer referência a vários outros pacotes ou mantê-los em um arquivo grande.
.go
arquivos em um único diretório fazem parte do mesmo pacote e você não precisa de import
arquivos no mesmo pacote (ou seja, o mesmo diretório). Você mencionou trabalhar fora do GOPATH, que é um dos recursos do novo sistema de módulos Go. Esta resposta tampas módulo estrutura, a importação de pacotes locais, organizando pacotes dentro de um módulo, se deve ou não ter vários módulos no repositório único, etc.
git/repo/to/my/project
caminho inteiro ? Só não vejo a razão pela qual alguém iria querer esse comportamento. E se você mover seu projeto para outro local (por exemplo, imagem do Docker), precisará alterar todos os caminhos novamente? Estou procurando respostas por que isso é tão complicado.