有没有可能在每次编译Go应用程序时自动递增一个次要版本号?
我想在我的程序中设置一个版本号,并设置一个自动递增的部分:
$ myapp -version
MyApp version 0.5.132
是我设置的版本号0.5,132是每次编译二进制文件时自动递增的值.
这在围棋里可以吗?
有没有可能在每次编译Go应用程序时自动递增一个次要版本号?
我想在我的程序中设置一个版本号,并设置一个自动递增的部分:
$ myapp -version
MyApp version 0.5.132
是我设置的版本号0.5,132是每次编译二进制文件时自动递增的值.
这在围棋里可以吗?
Go链接器(go tool link)有一个选项,用于设置未初始化字符串变量的值:
-X importpath.name=value Set the value of the string variable in importpath named name to
价值. 请注意,在GO1.5之前,此选项有两个单独的参数. 现在它需要在第一个=符号上拆分一个参数.
作为构建过程的一部分,您可以使用以下命令设置版本字符串变量.您可以使用-ldflags
将其通过go
工具.例如,给定以下源文件:
package main
import "fmt"
var xyz string
func main() {
fmt.Println(xyz)
}
然后:
$ go run -ldflags "-X main.xyz=abc" main.go
abc
要在构建时将main.minversion
设置为构建日期和时间,请执行以下操作:
go build -ldflags "-X main.minversion=`date -u +.%Y%m%d.%H%M%S`" service.go
如果以这种方式编译而不初始化main.minversion
,则它将包含空字符串.