0

Могу ли я иметь несколько директорий GOPATH?

15

Я установил свой GOPATH в

/Users/me/dev/go

и у меня есть следующие директории:

/Users/me/dev/go/src/client1
/Users/me/dev/go/src/client2
/Users/me/dev/go/src/client3

Также в корневой папке dev находятся следующие проекты:

/Users/me/dev/client1/rails_project
/Users/me/dev/client2/php_project
и т.д.

Мне не нравится, что в корневой папке dev мне приходится создавать эту общую директорию "go", которая содержит множество различных Go-проектов для разных клиентов. Как я могу изменить структуру каталогов, чтобы не размещать все Go-проекты в одной общей директории?

2 ответ(ов)

0

Да, GOPATH представляет собой список директорий (как PATH). Чтобы получить подробности, выполните команду go help gopath. Например, на Linux у меня настроено так:

$ go env
GOROOT="/home/peter/go"
GOPATH="/home/peter/gopath:/home/peter/public/gopath"
$

У меня есть что-то похожее и на Windows.

Обратите внимание: в Linux в качестве разделителя списка GOPATH используется :, а в Windows — ;.

Если вы используете команду go get, она по умолчанию будет работать с первой директорией из списка.

Запустите go env, чтобы убедиться, что всё настроено правильно.

0

Да.

Чтобы привести цитату из самого Go:

$ go help gopath

Путь Go используется для разрешения операторов импорта. Он реализован и задокументирован в пакете go/build.

Переменная окружения GOPATH перечисляет места, где можно искать код на Go.

На Unix значение — это строка, разделённая двоеточиями.

На Windows значение — это строка, разделённая точками с запятой.

На Plan 9 значение — это список.

GOPATH должен быть установлен, чтобы получать, собирать и устанавливать пакеты вне стандартного дерева Go.

Каждая директория, указанная в GOPATH, должна иметь предписанную структуру:

Директория src содержит исходный код. Путь ниже src определяет путь импорта или имя исполняемого файла.

...

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь