Maison  >  Article  >  développement back-end  >  Comment convertir une pseudo version d'un module Golang en un commit git ?

Comment convertir une pseudo version d'un module Golang en un commit git ?

王林
王林avant
2024-02-08 23:00:221173parcourir

如何将 Golang 模块的伪版本转换为 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.

Contenu de la question

J'ai deux référentiels git contenant des modules go, appelons-les controllerapicontroller 导入 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

Solution

Merci à Volker pour avoir fourni la bonne réponse. Utiliser le package 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer