Heim > Backend-Entwicklung > Golang > Wie erstelle ich mehrere Go-Paket-Binärdateien gleichzeitig ohne einen „cmd'-Ordner der obersten Ebene?

Wie erstelle ich mehrere Go-Paket-Binärdateien gleichzeitig ohne einen „cmd'-Ordner der obersten Ebene?

DDD
Freigeben: 2024-11-02 22:49:29
Original
714 Leute haben es durchsucht

How to Build Multiple Go Package Binaries Simultaneously Without a Top-Level `cmd` Folder?

Gleichzeitiges Erstellen mehrerer Go-Paket-Binärdateien

Die Frage dreht sich um das gleichzeitige Erstellen mehrerer Paket-Binärdateien als Standardempfehlung für die Verwendung einer obersten Ebene Der cmd-Ordner scheint nicht zu funktionieren. Das bereitgestellte Codebeispiel zeigt eine bestimmte Ordnerstruktur, die das korrekte Erstellen bestimmter Binärdateien ermöglicht.

Um alle Binärdateien in einem Schritt mit dem Befehl „go build“ zu erstellen, wird eine Variation der folgenden empfohlen:

cd $GOPATH/someProject
for CMD in `ls src/cmd`; do
  go build ./src/cmd/"$CMD"
done
Nach dem Login kopieren

Dieser Befehl durchläuft die Pakete im Verzeichnis src/cmd und erstellt jedes Paket einzeln. Die resultierenden Binärdateien werden in ihren jeweiligen Paketverzeichnissen gespeichert.

Alternativ kann ein Skript verwendet werden, wenn Sie die Binärdateien nicht in $GOPATH/bin installieren möchten. Dies ist eine gängige Praxis in Open-Source-Projekten, bei denen Build-Skripte die Produktion mehrerer Binärdateien verwalten.

Das folgende Beispielskript kann verwendet werden:

cd $GOPATH/someProject
for CMD in `ls cmd`; do
  go build ./cmd/$CMD
done
Nach dem Login kopieren

Dieses Skript durchläuft die Pakete im cmd Verzeichnis und Läufe bauen auf jedem auf. Das Ergebnis ist eine Reihe von Binärdateien, die in ihren jeweiligen cmd-Paketverzeichnissen gespeichert sind.

Zur weiteren Referenz bieten die folgenden beliebten Projekte Beispiele für Build-Skripte:

  • Grafana: https:// github.com/grafana/grafana/blob/master/build.go
  • Torus: https://github.com/coreos/torus/blob/master/Makefile
  • Caddy: https: //github.com/mholt/caddy/blob/master/dist/automate.go

Das obige ist der detaillierte Inhalt vonWie erstelle ich mehrere Go-Paket-Binärdateien gleichzeitig ohne einen „cmd'-Ordner der obersten Ebene?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage