web-dev-qa-db-fra.com

Utiliser "Go Get" pour télécharger des fichiers binaires sans les ajouter à Go.Mod

J'utilise Go Modules de mon projet et dans mon système de construction (E.G. Travis CI), je télécharge un utilitaire de ligne de commande (écrit in Go) avec go get Pour aider à mon processus de construction, E.G.:

go get github.com/mitchellh/gox

Cependant, ceci go get fait ajouter le fichier à mon go.mod fichier. Cela contamine l'environnement de construction, ce qui l'oblige à être "sale" (car il y a des changements à certains fichiers suivis dans Git, dans ce cas, go.mod and go.sum), et j'utilise git describe --always --dirty --tag Pour décrire ma construction, qui se présente comme "sale".

Y a-t-il un moyen de "aller chercher" un binaire juste pour le télécharger, sans l'ajouter au go.mod/go.sum?

J'ai essayé de mettre en place un gopathe à quelque part d'ailleurs, même alors, go get met à jour le go.mod/go.sum pour ajouter ceci comme un // indirect Dépendance.

dir="$(mktemp -d)"; \
  env GOPATH="$dir" go get github.com/mitchellh/gox && \
  mv "$dir/bin/gox" "$(go env GOPATH)"/bin/gox
9
AhmetB - Google

Par go help build:

L'indicateur de construction -MOD fournit un contrôle supplémentaire sur la mise à jour et l'utilisation de Go.MOD.

Si invoqué avec -Mod = Readonly, la commande go est interdite de la mise à jour automatique implicite de go.mod

0
Adrian