example.com/printversion v0.1.0 -- .mod -- module example.com/printversion -- .info -- {"Version":"v0.1.0"} -- README.txt -- There is no go.mod file for this version of the module. -- printversion.go -- package main import ( "fmt" "os" "runtime/debug" _ "example.com/version" ) func main() { info, _ := debug.ReadBuildInfo() fmt.Fprintf(os.Stdout, "path is %s\n", info.Path) fmt.Fprintf(os.Stdout, "main is %s %s\n", info.Main.Path, info.Main.Version) if r := info.Main.Replace; r != nil { fmt.Fprintf(os.Stdout, "\t(replaced by %s %s)\n", r.Path, r.Version) } for _, m := range info.Deps { fmt.Fprintf(os.Stdout, "using %s %s\n", m.Path, m.Version) if r := m.Replace; r != nil { fmt.Fprintf(os.Stdout, "\t(replaced by %s %s)\n", r.Path, r.Version) } } }