I am creating an app using Go 1.9.2 and I am trying to add a version string variable to it using the ldflags -X
options during the build.
I've managed to set a Version
variable in my main
package by using: -ldflags "-X main.Version=1.0.0"
, however what I really need is to set the Version
variable inside my config
package instead of the main
one. Is this possible?
Here is my build command:
go build -ldflags "-X config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)
Quoting from doc of Command link:
-X importpath.name=value Set the value of the string variable in importpath named name to value. Note that before Go 1.5 this option took two separate arguments. Now it takes one argument split on the first = sign.
So it can be used for any package, not just for the main
package. But you must specify the full import path, not just the package name.
E.g. if your config
package is located at $GOPATH/src/my/package/config
, then use the following command:
go build -ldflags "-X my/package/config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)