我需要提供一个版本号在输出产生的Go应用程序。对于发行版和本地构建,我使用的Makefile有:
...
VERSION = $(shell git describe --tags)
VER = $(shell git describe --tags --abbrev=0)
DATE = $(shell date -u '+%Y-%m-%d_%H:%M:%S%Z')
...
FLAGS_LD=-ldflags "-X path/to/myapp/mypkg.Build=${DATE} \
-X path/to/myapp/mypkg.Version=${VERSION}"
...
GOCMD = go
GOBUILD = $(GOCMD) build $(FLAGS_LD)
GOINSTALL = $(GOCMD) install $(FLAGS_LD)
...在包中,我的变量为
package mypkg
var (
Version = "v0.11.0-dev"
Build string
)当我通过make运行构建、安装或发布时,一切都很好,但是如果我运行go get path/to/myapp,那么-ldflags是空的,用户会得到过时的版本信息,而没有生成信息。
在使用go get安装程序时,是否有方法获得正确的to标志数据?
发布于 2020-01-06 17:01:56
不,下载源时不能读/写No标志。
go get是用来从源代码安装的。
在安装go get程序时是否有方法获得正确的go标志数据?
目前的答复是否定的。
是的,您可以向用户提供软件包的版本
要实现你想要做的事情,最简单的方法是:
Version的值。通过组合使用sed.和git-hooks,您可以非常容易地自动执行此操作。
发布于 2020-01-06 12:51:20
在安装go get程序时是否有方法获得正确的go标志数据?
不是的。
https://stackoverflow.com/questions/59611536
复制相似问题