Как заставить мой GoLand обнаруживать пакеты зависимостей в $ GOPATH / pkg / mod? - PullRequest
0 голосов
/ 29 января 2020

Я пробую учебное пособие по kubebuilder и только что импортировал существующий проект в GoLand.

Работа с автоматически сгенерированными кодами скаффолда kubebuilder и автоматически загруженными pkgs с модом go. У меня не было проблем, когда я работал со средой командной строки, но оказалось, что после открытия проекта с помощью GoLand, в IDE не удается разрешить имена импортированных пакетов, что означает, что он не может обнаружить или связать пакеты, установленные модом go .

Я включил go мод (с поставщиком) и удалил оба из предпочтений IDE, правильно установил GOPATH и Go, но ошибка продолжает появляться.

Я не знаете, почему я получаю эту ошибку, и как ее решить.

+) Рабочий каталог - это $ GOPATH / src / пример, все логики и настройки находятся в каталоге. Установленные зависимости помещаются в $ GOPATH / pkg / mod.

1 Ответ

2 голосов
/ 29 января 2020

Я включил go мод (с поставщиком) и удалил оба из настроек IDE, правильно установил GOPATH и GOROOT, но ошибка продолжает появляться.

Предположим, что у вас есть следующие настройки на вашем компьютере:

  • Go установлен в /usr/lib/go
  • GOPATH установлен в /home/florin/go
  • Проект KubeBuilder с именем demobuilder создается в /home/florin/projects/demobuilder. Я рекомендую это вместо использования GOPATH, как вы делаете, для Go проектов модулей, потому что они ведут себя по-разному в GOPATH.

Во-первых, убедитесь, что у вас GoLand 2019.3.1 или новее.

Затем, после создания проекта demobuilder, запустите GoLand, затем нажмите кнопку Open Project.

Когда проект открыт, если вы еще не настроены, IDE запросит у вас конфигурацию Go SDK, также известную как GOROOT. Это будет желтая полоса в верхней части редактора. Нажмите на ссылку справа, чтобы настроить его. Вы можете выбрать локальную установку и указать ее /usr/local/go. Если у вас не установлен Go, вы также можете загрузить его в каталог по вашему выбору.

Затем среда IDE должна автоматически заметить, что проект является проектом на основе Go Modules, и включить поддержка для них. Если это не так, то от go до Settings/Preferences | Go | Go Modules и включите его. НЕ включает одновременно модули Go и поддержку dep одновременно. Если вы это сделали, отключите интеграцию dep и попробуйте снова.

Все это вы можете увидеть на странице справки .

...