Maison > développement back-end > Golang > Comment créer simultanément plusieurs binaires de packages Go sans dossier « cmd » de niveau supérieur ?

Comment créer simultanément plusieurs binaires de packages Go sans dossier « cmd » de niveau supérieur ?

DDD
Libérer: 2024-11-02 22:49:29
original
779 Les gens l'ont consulté

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

Création simultanée de plusieurs binaires de packages Go

La question tourne autour de la création simultanée de plusieurs binaires de packages, comme conseil par défaut pour l'utilisation d'un Le dossier cmd ne semble pas fonctionner. L'exemple de code fourni montre une structure de dossiers particulière qui permet de créer correctement des binaires spécifiques.

Pour créer tous les binaires en une seule étape à l'aide de la commande go build, une variante de ce qui suit est recommandée :

cd $GOPATH/someProject
for CMD in `ls src/cmd`; do
  go build ./src/cmd/"$CMD"
done
Copier après la connexion

Cette commande parcourt les packages dans le répertoire src/cmd et construit chaque package individuellement. Les binaires résultants seront stockés dans leurs répertoires de packages respectifs.

Alternativement, si vous ne souhaitez pas installer les binaires dans $GOPATH/bin, un script peut être utilisé. Il s'agit d'une pratique courante dans les projets open source, où les scripts de build gèrent plusieurs productions binaires.

L'exemple de script suivant peut être utilisé :

cd $GOPATH/someProject
for CMD in `ls cmd`; do
  go build ./cmd/$CMD
done
Copier après la connexion

Ce script parcourt les packages dans la cmd répertoire et les exécutions vont s'appuyer sur chacun. Le résultat est un ensemble de binaires stockés dans leurs répertoires de packages cmd respectifs.

Pour référence ultérieure, les projets populaires suivants fournissent des exemples de scripts de construction :

  • 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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal