иди получить неудачу для hashicorp/levant

Я унаследовал сценарий сборки, который создает образ докера и использует hashicorp/levantбиблиотека для развертывания. Примерно год мы бежимgo get github.com/jrasell/levant схватить levantбиблиотека. За последние несколько дней URL-адрес репо был объединен в рамках организации Hashicorp, и мы изменили наш скрипт, чтобы он работал с go get github.com/hashicorp/levant. Но в любом случае мы получаем эту ошибку множественного назначения. Что это означает, что "не идет" просто вытаскивает репозиторий git?

../go/src/github.com/hashicorp/levant/template/render.go:28:11: cannot assign 
*"github.com/hashicorp/nomad/vendor/github.com/hashicorp/nomad/api".Job to job 
(type *"github.com/hashicorp/nomad/api".Job) in multiple assignment

2 ответа

Во-первых, go get работает с пакетами, а не с репозиториями.

Кроме того, чтобы тянуть их go get также компилирует и устанавливает их, и тут выскакивает ваша ошибка.

Больше информации здесь:

https://nanxiao.gitbooks.io/golang-101-hacks/content/posts/go-get-command.html

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

hashicorp/levant имеет go.{mod,sum} файлы и, следовательно, вы должны забыть об использовании go get way.

Лучше сделать клон и следовать модулю go, т.е.

git clone git@github.com:hashicorp/levant.git
go test ./...
go build ./...

Шаги с не только клонированием вашего репо, но также принесут ваши зависимые пакеты, необходимые для сборки / тестирования пакета.

Примечание: у вас должен быть Go v1.11+.

Другие вопросы по тегам