Govendor руководство по использованию инструмента управления пакетами Go

Go Язык программирования

Адрес столбца:Колонка технических статей

В то же время, вы также можете обратить внимание на мой публичный аккаунт WeChat.AlwaysBeta, вас ждет еще больше захватывающего контента.

govendor — это инструмент управления зависимостями для языка go.

Установка и инициализация

Установить:

go get -u -v github.com/kardianos/govendor

инициализация:

# Setup your project.
cd "my project in GOPATH"
govendor init

# Add existing GOPATH files to vendor.
govendor add +external

Скачать пакеты зависимостей

Эти три команды описаны ниже:

  • govendor fetch: Можно не только загружать собственный пакет, но и загружать зависимости.
  • govendor get: Как и "go get", но копирует зависимости в папку "vendor", как описано на официальном сайте, по факту копируются только зависимости в каталог vendor.
  • govendor add: добавить пакеты из $GOPATH, что означает загрузку пакетов зависимостей из локального.

Подводя итог, если вы загружаете пакеты зависимостей, вы должны использоватьgovendor fetch.

govendor fetch github.com/gin-gonic/gin@v1.2 # 只拷贝 gin/ 目录的内容,而不包含其子目录
govendor fetch github.com/gin-gonic/gin/...@v1.2 # 可以得到 gin/ 目录,及其所有子目录

@v1.2Указывает, что используется версия v1.2, которая на самом деле является версией с тегом git v1.2.Эта функция очень практична.

Поговорим еще об одной проблеме, с которой можно столкнуться.Иногда мы используем сторонние зависимые пакеты, и бывают баги.После ремонта, когда мы рассчитываем использовать собственный склад, мы можем сделать следующее:

govendor get 'github.com/go-sql-driver/mysql::github.com/yongxinz/go-mysql'

оригинальный складgithub.com/go-sql-driver/mysqlЕсть небольшая проблема, в настоящее время рассчитывайте использовать самостоятельную установку.github.com/yongxinz/go-mysql.

Управление версиями

не ставь целикомvendor/Все содержимое каталога относится к репозиторию git, только коммитvendor/vendor.jsonфайл в порядке.

Когда нам нужно установить пакет зависимостей после извлечения кода, нам нужно всего лишь выполнить следующую команду.

govendor sync

.gitignoreфайл, ориентируясь на последние две строки:

# Created by https://www.gitignore.io/api/go
### Go ###
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary, build with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out

### Go Patch ###
/vendor/
!/vendor/vendor.json

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

другие команды

govendor status: просмотреть текущий статус пакета

govendor list +e: просмотр зависимостей текущего проекта, но не добавленных вvendorупаковать в

govendor add +e: добавить зависимые пакеты. еслиvendor.jsonсуществует, ноvendorне существует в каталоге (т.е.govendor statusпакеты, показывающие отсутствие) также повторно добавлены

govendor remove +u: удалить вvendorпод, но не зависимые пакеты

В реальном процессе некоторые пакеты являются публичными пакетами команды. Эта часть пакета обычно имеет свой отдельный проект и добавлена ​​нами в$GOPATH, вам может не понадобиться добавлять в текущий проектvendorВниз.

В это время можно совмещатьlistиaddиспользовать, использовать в первую очередьlist -no-status +eПеречислите зависимые пакеты, затем используйтеgrepфильтр, позвони еще разaddДобавить команду:

govendor list -no-status +e | grep -v 'myteam/common' | xargs govendor add


Связанные документы:
GitHub.com/Карен Пойнт, о да/а…
woohoo.orzmap.com/post/using-…
ссылки cue.com/2018/08/09/…