Я использую модули Go в своем проекте и в своей системе сборки (например, Travis CI). Я загружаю утилиту командной строки (написанную на Go) с go get
, чтобы помочь с процессом сборки, например:
go get github.com/mitchellh/gox
Однако, это go get
вызывает добавление файла в мой файл go.mod
. Это загрязняет среду сборки, делая ее «грязной» (поскольку в некоторых файлах, отслеживаемых в git, есть изменения, в данном случае go.mod и go.sum), и я использую git describe --always --dirty --tag
для описания моей сборки, которая отображается как «грязный».
Есть ли способ "пойти получить" бинарный файл просто для его загрузки, без добавления его в go.mod / go.sum?
Я пытался установить GOPATH где-то еще, даже тогда, go get
обновляет go.mod / go.sum, чтобы добавить это как // indirect
зависимость.
dir="$(mktemp -d)"; \
env GOPATH="$dir" go get github.com/mitchellh/gox && \
mv "$dir/bin/gox" "$(go env GOPATH)"/bin/gox