Я использовал, GOPATH
но для этой текущей проблемы, с которой я сталкиваюсь, это не помогает. Я хочу иметь возможность создавать пакеты, специфичные для проекта:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
Я пробовал несколько способов, но как мне начать package1.go
работать в binary1.go
или binary2.go
и так далее?
Например; Я хочу иметь возможность, import "package1"
а затем быть в состоянии запустить, go build binary1.go
и все работает нормально, без выдачи ошибки, что пакет не может быть найден GOROOT
или GOPATH
. Причина, по которой мне нужен этот вид функциональности, заключается в крупных проектах; Я не хочу ссылаться на несколько других пакетов или хранить их в одном большом файле.
.go
файлы в одном каталоге являются частью одного и того же пакета, и вам не нужны import
файлы в одном и том же пакете (то есть в одном и том же каталоге). Вы упомянули работу вне GOPATH, которая является одной из возможностей новой системы модулей Go. Этот ответ охватывает структуру модуля, импорт локальных пакетов, организацию пакетов внутри модуля, наличие или отсутствие нескольких модулей в одном репозитории и т. Д.
git/repo/to/my/project
путь? Я просто не вижу причины, по которой кто-то хотел бы такого поведения. Что если вы переместите свой проект в другое место (например, изображение Docker), вам нужно снова изменить все пути? Я ищу ответы, почему это так сложно.