Récupération des versions de modules dans le code Golang
Dans le développement de logiciels, l'affichage des informations de version pour les bibliothèques importées peut fournir un débogage et une transparence précieux. Lorsque vous travaillez avec plusieurs binaires à l'aide de bibliothèques partagées, la gestion de ces versions peut devenir difficile.
Problème :
Vous disposez de deux binaires utilisant deux bibliothèques (par exemple, libA et libB) , chacun géré dans des référentiels git distincts avec des balises de version. Vous recherchez une méthode pour afficher les informations de version de ces bibliothèques importées dans les binaires.
Solution :
Go propose une solution via le runtime/debug. Fonction ReadBuildInfo(). Cette fonction récupère une liste de dépendances, y compris les chemins d'accès et les versions des modules, accessibles dans votre code Go.
Pour récupérer et afficher ces informations, suivez ces étapes :
Parcourez le liste des dépendances renvoyée :
<code class="go">for _, dep := range bi.Deps { fmt.Printf("Dep: %+v\n", dep) }</code>
Cela imprimera le chemin du module et la version de chaque dépendance, fournissant les informations de version souhaitées.
Exemple :
<code class="go">package main import ( "fmt" "log" "runtime/debug" "github.com/example/libA" "github.com/example/libB" ) func main() { _ = libA.DoSomething() _ = libB.DoSomethingElse() bi, ok := debug.ReadBuildInfo() if !ok { log.Printf("Failed to read build info") return } fmt.Println("Used libraries:") for _, dep := range bi.Deps { fmt.Printf(" - %s, v%s\n", dep.Path, dep.Version) } }</code>
Cet exemple récupère les informations de version des bibliothèques importées et les imprime dans le format souhaité.
En tirant parti de cette fonctionnalité, vous pouvez facilement afficher les versions de module dans votre code Golang , offrant un moyen pratique de surveiller et de déboguer les dépendances du code.
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!