Не удается синхронизировать пакет c Go из параллельного каталога - PullRequest
0 голосов
/ 30 мая 2020

Это должно быть просто в Go 1.14.2, но по какой-то причине это не так. У меня следующий макет проекта ...

go
└── src
│   └── github.com
│   │   └── folder
│   │   │   ├── my-first-project
│   │   │   └── my-second-project

В основном файле my-second-project мой оператор импорта содержит обычные библиотеки, плюс ...

import (
    // standard libraries
    "github.com/folder/my-first-project/module/sub-module"
)

Когда я пытаюсь для синхронизации c, чтобы я мог импортировать этот подмодуль, Go пытается загрузить его с GitHub вместо того, чтобы искать в локальной папке, что означает, что он не может найти этот проект. Однако мой GOPATH установлен в папку go, а файл go .mod в my-second-project начинается с ...

module github.com/folder/my-second_project

... поэтому я не могу понять, что я может отсутствовать, что затрудняет этот импорт. Я использую полностью квалифицированные рекомендации, но по какой-то причине я не могу заставить два проекта жить бок о бок, чтобы общаться друг с другом. Буду признателен за любой совет.

1 Ответ

0 голосов
/ 15 июня 2020

При использовании модулей Go не смотрится в GOPATH. Модули используют кэш модулей только для чтения, поэтому их не нужно загружать каждый раз при сборке.

Если вы разрабатываете модуль, который еще не опубликован, вы можете использовать директиву replace для укажите на локальный каталог, в котором находится другая зависимость.

См. Как объявить golang версии зависимостей лучше всего в go .mod? для получения дополнительной информации о том, когда вы будете использовать replace.

...