我在make文件中有一个变量VERSION
,它使用-ldflags
VERSION = $(strip $(TIMESTAMP))
LDFLAGS = -ldflags "-X main.buildTime $(BUILD_TIME) -X main.buildNumber $(VERSION)"
现在我想在一个不是main
的包中获取VERSION并打印它。我尝试了很多选项,但无法使其正常工作。
我的问题是如何在包中将其打印出来然后在运行时将其打印到客户端,例如you are connected to app version 2.0
.. ??
答案 0 :(得分:2)
目录结构:
- main.go
- test/
- test.go
<强> test.go 强>
package test
var Version = ""
<强> main.go 强>
package main
import (
"fmt"
"test"
)
func main() {
fmt.Println(test.Version)
}
最后,运行:
go run -ldflags="-X test.Version 2.0.0" main.go
输出:
> 2.0.0
由于我们可以指定导入路径,因此我们可以在任何地方设置字符串的值,而不仅仅是在main。
从1.5开始,语法更改为importpath.name=string
。