Как мне перейти с модулей Dep на Go - PullRequest
5 голосов
/ 13 апреля 2019

Я сейчас использую Dep и хотел бы начать использовать модули Go.

Как мне мигрировать?

Ответы [ 2 ]

8 голосов
/ 13 апреля 2019

Миграция из модулей Dep to Go очень проста.

  1. Запустите go version и убедитесь, что вы используете версию 11 или новее.
  2. Переместите свой код за пределы GOPATH или установите export GO111MODULE=on.
  3. go mod init [module path]: Это импортирует зависимости из Gopkg.lock.
  4. go mod tidy: это удалит ненужные импорты и добавит косвенные.
  5. rm -rf vendor/: необязательный шаг для удаления папки поставщика.
  6. go build: выполнить тестовую сборку, чтобы проверить, работает ли она.
  7. rm -f Gopkg.lock Gopkg.toml: удалить устаревшие файлы, используемые для Dep.

Go импортировал мои зависимости из Dep, прочитав файл Gopkg.lock, а также создал файл go.mod.

Если вы хотите сохранить папку вашего поставщика:

  1. Запустите go mod vendor, чтобы скопировать ваши зависимости в папку поставщика.
  2. Запустите go build -mod=vendor, чтобы убедиться, что go build использует папку вашего поставщика.
0 голосов
/ 14 апреля 2019

Чтобы добавить @Nicholas's answer's:

Здесь из официальной документации golang:

Чтобы создать go.mod для существующего проекта:

  1. Перейдите к корню дерева исходного кода модуля вне GOPATH:
$ export GO111MODULE=on                         # manually active module mode
$ cd $GOPATH/src/<project path>                 # e.g., cd $GOPATH/src/you/hello
Создайте исходное определение модуля и запишите его в файл go.mod:
$ go mod init      

Этот шаг конвертирует из любого существующего dep файла Gopkg.lock или из всех остальных девяти поддерживаемых форматов зависимостей , добавляя операторы require для соответствия существующей конфигурации.

Сборка модуля.При выполнении из корневого каталога модуля шаблон. / ... соответствует всем пакетам в текущем модуле.go build автоматически добавит отсутствующие или неконвертированные зависимости, необходимые для удовлетворения импорта для этого конкретного вызова сборки:
$ go build ./...
Проверьте модуль как настроенный, чтобы убедиться, что он работает с выбранными версиями:
$ go test ./...

(Необязательно) Запустите тесты для вашего модуля, а также тесты для всех прямых и косвенных зависимостей для проверки на несовместимость:

$ go test all
...