Home > Article > Backend Development > How to Display Imported Library Versions in Golang Code?
Retrieving Module Versions within Golang Code
In software development, displaying version information for imported libraries can provide valuable debugging and transparency. When working with multiple binaries using shared libraries, managing these versions can become challenging.
Problem:
You have two binaries utilizing two libraries (e.g., libA and libB), each managed in separate git repositories with version tags. You seek a method to display the version information of these imported libraries within the binaries.
Solution:
Go offers a solution through the runtime/debug.ReadBuildInfo() function. This function retrieves a list of dependencies, including module paths and versions, which can be accessed within your Go code.
To retrieve and display this information, follow these steps:
Iterate over the returned list of dependencies:
<code class="go">for _, dep := range bi.Deps { fmt.Printf("Dep: %+v\n", dep) }</code>
This will print the module path and version of each dependency, providing the desired version information.
Example:
<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>
This example retrieves the version information of the imported libraries and prints it in the desired format.
By leveraging this functionality, you can easily display module versions within your Golang code, providing a convenient way to monitor and debug code dependencies.
The above is the detailed content of How to Display Imported Library Versions in Golang Code?. For more information, please follow other related articles on the PHP Chinese website!