В настоящее время я использую Dep и хочу начать использовать модули Go.
Как мне перейти?
В настоящее время я использую Dep и хочу начать использовать модули Go.
Как мне перейти?
Переход с модулей Dep на Go очень прост.
go version
и убедитесь, что вы используете Go версии 1.11 или новее.export GO111MODULE=on
.go mod init [module path]
: Это импортирует зависимости из Gopkg.lock.go mod tidy
: Это удалит ненужный импорт и добавит косвенный.rm -rf vendor/
или переместите в корзину)go build
: Сделайте тестовую сборку, чтобы проверить, работает ли она.rm -f Gopkg.lock Gopkg.toml
: удалить устаревшие файлы, используемые для Dep.Go импортировал мои зависимости из Dep, прочитав файл Gopkg.lock
, а также создал файл go.mod
.
Если вы хотите сохранить папку своего поставщика:
go mod vendor
, чтобы скопировать зависимости в папку поставщика.go build -mod=vendor
, чтобы убедиться, что go build
использует папку вашего поставщика.clang: error: unable to read SDK settings for '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
- person Luna Lovegood; 12.06.2019
xcode-select --install
- person Nicholas; 12.06.2019
Чтобы добавить к ответу @Nicholas:
Вот официальная документация по голангу:
Чтобы создать go.mod для существующего проекта:
$ export GO111MODULE=on # manually active module mode
$ cd $GOPATH/src/<project path> # e.g., cd $GOPATH/src/you/hello
$ go mod init
Этот шаг преобразует любой существующий файл dep Gopkg.lock или из любого из девяти других поддерживаемых форматов зависимостей, добавляя операторы require в соответствовать существующей конфигурации.
$ go build ./...
$ go test ./...
(Необязательно) Запустите тесты для вашего модуля плюс тесты для всех прямых и косвенных зависимостей, чтобы проверить несовместимость:
$ go test all
Еще один способ перейти на модули.
Удалите Gopkg.toml и Gopkg.lock
rm Gopkg.*
Инициализируйте модули Go
GO111MODULE=on go mod init
Запустите go mod tidy, чтобы вытащить все сторонние модули и удалить неиспользуемые модули.
GO111MODULE=on go mod tidy
Запустите сборку, чтобы убедиться, что все работает нормально
go build
Подсказка, если вы столкнетесь с тем, что несколько модулей не найдены, вручную обновите тег модулей в файле go.mod.