Maison > Article > développement back-end > Comment convertir une pseudo version d'un module Golang en un commit git ?
l'éditeur php Youzi partagera avec vous comment convertir la pseudo version du module Golang en une soumission git. Dans la gestion des modules de Golang, les pseudo-versions sont utilisées pour maintenir les dépendances dans les modules qui n'ont pas encore été publiés. Cependant, lorsque vous êtes prêt à publier le module dans un référentiel git, vous devez convertir ces pseudo-versions en commits git concrets. Cet article présentera en détail comment mettre en œuvre ce processus et vous aidera à mieux gérer et maintenir les dépendances des modules Golang.
J'ai deux référentiels git contenant des modules go, appelons-les controller
和 api
。 controller
导入 api
,因此 controller
存储库中的 go.mod
文件依赖于 api
modules contenus dans les référentiels.
Mon problème est de pouvoir exécuter le dossier controller
中的代码,我不仅需要 api
中的 go 代码,还需要存储库中包含的一些静态文件(从代码生成)。据我所知,没有办法将这些静态文件打包到go模块中,以便它们自动导入到我的vendor
.
Mon approche actuelle consiste à essayer d'ajouter le dossier contenant les fichiers statiques en tant que sous-module git peu extrait. Cependant, afin que ce sous-module fonctionne avec les commits référencés à partir de la version du module api
导入的 go 源代码保持同步,我想要一个小的 shell 脚本,自动检查 go.mod
文件中 api
.
Bien que cela puisse fonctionner pour les versions publiées, j'aimerais également que cela fonctionne pour les versions inédites, qui sont des pseudo-versions de go.mod
文件中具有 <semantic version>-<commit 时间戳 >-<commit 哈希前缀 >
.
Existe-t-il un moyen de calculer le hachage complet submit de cette pseudo-version ? Je suppose que cela est possible dans une certaine mesure, puisque go modvendor
est capable d'extraire la bonne version, mais le seul processus auquel je peux penser est de rechercher les validations survenues dans toutes les branches à un moment donné, puis de sélectionner les validations parmi auquel correspond le préfixe de hachage .. Cela semble difficile à faire en bash.
Des idées pour résoudre ce problème ? L'alternative d'importer mes fichiers statiques de api
dans controller
est également appréciée, de cette façon en les gardant synchronisés avec la version fournie du module api
. api
导入 controller
的替代方法也值得赞赏,这种方式使它们与 api
模块的供应版本保持同步。
感谢 Volker 提供正确答案。使用 embed
embed
est en fait très simple et fonctionne bien. 🎜
🎜Un inconvénient de cette solution est que seuls les fichiers du package go peuvent être intégrés. Étant donné que les fichiers que je génère se trouvent dans un dossier de niveau supérieur qui ne contient aucun code go, je dois les envelopper dans un package virtuel pour les intégrer. 🎜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!