首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能得到正确的版本和构建信息时,做“去获取路径/to/myapp”吗?

我能得到正确的版本和构建信息时,做“去获取路径/to/myapp”吗?
EN

Stack Overflow用户
提问于 2020-01-06 11:44:23
回答 2查看 52关注 0票数 2

我需要提供一个版本号在输出产生的Go应用程序。对于发行版和本地构建,我使用的Makefile有:

代码语言:javascript
复制
...
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)
...

在包中,我的变量为

代码语言:javascript
复制
package mypkg

var (
    Version = "v0.11.0-dev"
    Build   string
)

当我通过make运行构建、安装或发布时,一切都很好,但是如果我运行go get path/to/myapp,那么-ldflags是空的,用户会得到过时的版本信息,而没有生成信息。

在使用go get安装程序时,是否有方法获得正确的to标志数据?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-06 17:01:56

不,下载源时不能读/写No标志。

go get是用来从源代码安装的。

在安装go get程序时是否有方法获得正确的go标志数据?

目前的答复是否定的。

是的,您可以向用户提供软件包的版本

要实现你想要做的事情,最简单的方法是:

  1. 如果您想要共享的是一个库(可重用代码),那么将git标记添加到您的源代码回购中,以便您的开发用户可以使用它进行包版本管理。(滑动,go.mod,dep,.)。如果您想共享的是一个程序(只打算编译和执行),那么每次发布新版本时都要修改Version的值。通过组合使用sed.

git-hooks,您可以非常容易地自动执行此操作。

票数 2
EN

Stack Overflow用户

发布于 2020-01-06 12:51:20

在安装go get程序时是否有方法获得正确的go标志数据?

不是的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59611536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档