doniys_a
@doniys_a
Backend-разработчик (Php, node.js, python, ruby)

Как настроить GOPATH на использование Vendor?

Есть проект, написанный на go. Для удобства зависимостей использую glide, точнее на текущий момент меняю структуру vendor и добвляю каталог в GOPATH.

В glide.yml есть зависимость :

- package: github.com/go-sql-driver/mysql
  version: ^1.4.0


В проекте есть импорт:
import (_ "github.com/go-sql-driver/mysql"

В таком случае (если его нет в текущем GOPATH, ругается на отстутсвие пакета)

Структура директорий:
| root
    | src/ 
         | go files
         | vendor/
    | doc-files


Изменяю структуру директорий:
mkdir -p src/vendor_new/src
mv src/vendor/* src/vendor_new/src
rm -r src/vendor
mv src/vendor_new src/vendor

export GOPATH="$GOPATH:$(pwd):$(pwd)/src/vendor"


Инструкция make файла:
# Installing build dependencies. You will need to run this once manually when you clone the repo
depend:
	go get -v $(DEPEND)
	cd src && rm -rf vendor || true && glide install && && mkdir -p vendor_new/src && mv vendor/* vendor_new/src && rm -r vendor && mv vendor_new vendor && cd ..


Тогда пакеты подтягиваются.

Возможно ли без модификации структуры vendor, который формирует glide, указать GO использовать пакеты из vendor?

Флаг `GO15VENDOREXPERIMENT` выставлен в `1`
$ uname -a
Linux localhost.localdomain 4.17.11-200.fc28.x86_64 #1 SMP Mon Jul 30 15:21:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ go version 
go version go1.10.3 linux/amd64


[]$ go env 
GOARCH="amd64"
GOBIN="/home/user/go/bin"
GOCACHE="/home/user/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/user/go:/projects/go-project:/projects/go-project/src/vendor"
GORACE=""
GOROOT="/usr/lib/golang"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build031255179=/tmp/go-build -gno-record-gcc-switches"
  • Вопрос задан
  • 1137 просмотров
Пригласить эксперта
Ответы на вопрос 1
dmpichugin
@dmpichugin
Gopher
Для лока зависимостей советую начать использовать https://github.com/golang/dep . Это официальный менеджер зависимостей и он прост в использовании.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы