Okay, also GoDeps kann der Standard Weg sein, dies zu tun, aber ich fand es normalerweise ein bisschen kompliziert. Meiner Meinung nach, verwenden Sie ein Makefile, das ein benutzerdefiniertes GoPath setzt und nur Abhängigkeiten mit Ihrem Code einbaut (entfernen Sie deren .git-Ordner). Auf diese Weise friert die Version ein und niemand muss eine godep restore
oder etwas ähnliches tun.
Sie können Rezepte wie make deploy
erstellen, die Ihren Code erstellen, GoFmt ausführen, die pkg-Dateien bereinigen, sie in Ihrem benutzerdefinierten GoPath bin/
installieren und dann einfach loslegen und die Binärdatei ausführen.
Sie können einen anderen wie make install
haben, der alle fehlenden Abhängigkeiten installiert.
Ich habe es geschafft, eine Uhr mit dieser auf meinem Makefile zu erstellen, um auf der Suche nach Änderungen auf einem Linux-basierten System mit inotify-tools
und Call Rebuild weiter zu suchen.
Intern werden alle Befehle Standard go
Befehle verwenden, aber Sie werden die GoDeps loswerden und JSON beibehalten. Um eine Abhängigkeit zu aktualisieren, ist dies möglicherweise ein Problem, da Sie das gesamte Verzeichnis manuell in Ihren benutzerdefinierten Pfad kopieren und den Ordner .git/entfernen müssen.
Unsere Firma verwendet diese Methode und scheint für uns recht nett zu arbeiten.
Plus diese Methode bringt Sie im Grunde die $GOPATH/src/github.com/repoName/
Art von Pfaden.
Wenn ich nicht klar bin, lassen Sie es mich wissen, ich werde einen Gith auf Github hinzufügen.
Alternativ können Sie einfach govendor (https://github.com/kardianos/govendor) verwenden, das alles für Sie erledigt, ohne ein benutzerdefiniertes '$ GOPATH' in Ihrem Makefile zu setzen (was die Gelegenheitsnutzung von' go build 'und ähnlich, und offen gesagt,' make' ist für solche Dinge langsam wie die Hölle. Govendor speichert Ihre Deps in/vendor, die sie mit Ihrem Code einchecken und so zuverlässige Builds ermöglichen. Solange Sie Go 1.6 (oder 1.5 und den Hersteller-Envvar) verwenden, benötigen Sie kein benutzerdefiniertes "$ GOPATH", da das "Go" -Tool automatisch den '/ vendor'-Ordner bevorzugt. –
Kaedys
Ahh stackoverflow .. Du bringst mir jeden Tag etwas Neues bei! Danke, ich schaue mal rein. – ishaan
Überprüfen Sie nicht Binärdateien mit Ihrem Quellcode in Ihre ** Quelle ** Kontrolle. Nicht. – JBaruch