Я пытаюсь понять, как организовать код go, используя "внутренние" пакеты. Позвольте мне показать, какая у меня структура:
project/
internal/
foo/
foo.go # package foo
bar/
bar.go # package bar
main.go
# here is the code from main.go
package main
import (
"project/internal/foo"
"project/internal/bar"
)
project/
находится вне дерева GOPATH. Независимо от пути, который я пытаюсь импортировать из main.go
ничего не работает, единственным main.go
случаем является import "./internal/foo|bar"
. Я думаю, что я делаю что-то неправильно или вообще ошибаюсь в "внутренней" идее пакета. Может, кто-нибудь прояснит ситуацию, пожалуйста?
ОБНОВИТЬ
Приведенный выше пример правильный, единственное, что мне нужно, - это разместить project/
папку под $GOPATH/src
. Итак, это путь импорта, так как project/internal/foo|bar
работоспособна, если мы импортируем ее только из project/
поддерева, а не извне.