Étapes de construction personnalisées avec Go
Bien que go build soit généralement suffisant pour compiler des programmes Go, il peut survenir des situations où des actions ou des commandes supplémentaires sont nécessaires à exécuter parallèlement au processus de construction.
Limitations des outils Go
La suite d'outils go ne fournit pas de prise en charge directe pour l'exécution de commandes arbitraires pendant la construction. La directive pkg-config est un cas spécifique pour lier des bibliothèques C, et non une solution à usage général.
Solutions de contournement
Makefile externe :
Une option consiste à utiliser un Makefile externe pour orchestrer les étapes de construction supplémentaires, qui peuvent ensuite être explicitement appelées par la commande go build en utilisant la syntaxe suivante :
<code class="go">go build -ldflags="-X main.version=$(shell cat VERSION)"</code>
Dans le Makefile, le des étapes supplémentaires peuvent être définies comme cibles et conditions préalables de la cible de build.
Commande séparée :
Vous pouvez également exécuter manuellement les commandes supplémentaires en tant qu'étapes distinctes avant ou après appeler go build. Cette approche nécessite davantage d'interventions manuelles mais offre une plus grande flexibilité.
Bonnes pratiques pour les packages de bibliothèque
Malgré ces solutions de contournement, les packages de bibliothèque doivent s'efforcer d'être compilables avec go get pour plus de facilité. de résolution de dépendances. Les exigences de construction complexes doivent être réservées aux applications autonomes.
Futures améliorations
La version Go 1.4 a introduit la commande generate, qui permet aux développeurs d'exécuter des commandes de pré-traitement sur la source. fichiers. Cependant, il s'agit toujours d'une étape distincte qui doit être explicitement invoquée et ne s'intègre pas au processus général de go build.
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!