gpt4 book ai didi

go - 应用程序自动构建版本控制

转载 作者:IT王子 更新时间:2023-10-29 02:22:48 26 4
gpt4 key购买 nike

是否可以在每次编译 Go 应用程序时自动增加次要版本号?

我想在我的程序中设置一个版本号,带有一个自动递增的部分:

$ myapp -version
MyApp version 0.5.132

0.5 是我设置的版本号,132 是每次编译二进制文件时自动递增的值。

这在 Go 中可能吗?

最佳答案

Go 链接器(go tool link)有一个选项可以设置未初始化的字符串变量的值:

-X importpath.name=value
Set the value of the string variable in importpath named name to

值。 请注意,在 Go 1.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,它将包含空字符串。

关于go - 应用程序自动构建版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39576593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com