Правильный способ импортировать файлы в том же проекте в Go - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть проект Go с такой структурой:

cmd
  myapp
    main.go
internal
  app
    myapp
      impl.go

Теперь в main.go, я хочу импортировать impl.go. GoLand говорит мне, что я должен сделать это так:

import (
  "myproj/internal/app/myapp"
)

Тем не менее, я компилирую проект на другом компьютере (потому что я использую EGL, а это не доступно в macOS). Когда я

go build cmd/myapp/main.go

там, он не может разрешить импорт. Поэтому я изменил импорт, чтобы использовать полный путь моего репозитория github, например:

import (
  "github.com/flyx/myproj/internal/app/myapp"
)

Код теперь компилируется нормально. Однако после того, как я вернул это обратно в GoLand, он больше не может разрешить импорт. Любопытно, что каждый элемент в пути дает отдельную ошибку, например

Невозможно разрешить каталог 'github.com'

Это очень странно, поскольку github.com очень очевидно в моем $GOPATH/src и другие операции импорта, которые не являются моим текущим проектом, работают.

Так ... что я делаю не так? Я даже не понимаю, как GoLand может разрешить путь, начинающийся с myproj. Я проверил, правильно ли установлен GOPATH в GoLand, и это так.

...