Могу ли я иметь несколько директорий GOPATH?
Я установил свой 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 ответ(ов)
Да, 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
, чтобы убедиться, что всё настроено правильно.
Да.
Чтобы привести цитату из самого Go:
$ go help gopath
Путь Go используется для разрешения операторов импорта. Он реализован и задокументирован в пакете go/build.
Переменная окружения GOPATH перечисляет места, где можно искать код на Go.
На Unix значение — это строка, разделённая двоеточиями.
На Windows значение — это строка, разделённая точками с запятой.
На Plan 9 значение — это список.
GOPATH должен быть установлен, чтобы получать, собирать и устанавливать пакеты вне стандартного дерева Go.
Каждая директория, указанная в GOPATH, должна иметь предписанную структуру:
Директория src содержит исходный код. Путь ниже src определяет путь импорта или имя исполняемого файла.
...
Существует ли цикл foreach в Go?
Как сопоставить любой символ на нескольких строках в регулярном выражении?
Отформатировать строку в Go без вывода?
Есть ли способ получить доступ к приватным полям структуры из другого пакета?
Получение тега поля структуры с использованием пакета reflect в Go