我在Go中使用GraphQL,并试图使用熟悉的go run
命令获得gqlgen工具。
我本以为它能检索到最新的可用标签;我不知怎么得到了一个似乎根本不存在于回购中的标签:
$ go run github.com/99designs/gqlgen version
v0.9.1-dev
我希望以上将根据最新标签返回
v0.13.0
Go版本安装在我的工作站上:
$ go version
go version go1.15.5 darwin/amd64
有人知道发生了什么事吗?
更新:禁用GOPROXY
对没有帮助
UPDATE2:正如您在这里看到的,版本被硬编码为version.go
,但即使go run
获得了master而不是最新的标记,您仍然希望输出是master分支的0.13.0-dev
。相反,我怀疑有一些标记版本的字符串排序将0.9.*
排序为高于0.1*.*
go run
目前不支持运行特定版本的二进制文件,但请注意,在go
命令的未来版本中,有一个已接受的Go建议可以添加该功能。
从Go 1.16开始,您可以改为go install
特定版本的二进制文件,然后从其安装位置运行该二进制文件($(go env GOBIN)
或$(go env GOPATH)/bin
(。
$ GOBIN=~/bin go install github.com/99designs/gqlgen@latest
$ ~/bin/gqlgen ...
我认为版本命令在构建时配置错误,v0.9.1-dev在构建时不是标签。