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
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