我看到了以下设置构建版本的命令
go build -ldflags "-X main.minversion `date -u +.%Y%m%d%.H%M%S`" service.go
但是我无法让时间戳部分在Windows上工作!
我正在使用go 1.5和以下论点。。。
build -i -ldflags "-X main.SERVER_NAME=MFFP -X main.VERSION=1.0.0 -X main.BUILD_DATE=`date -u +.%Y%m%d%.H%M%S`"
错误与日期部分有关
此错误系统是否相关?有人在Windows上尝试过吗?
谢谢!
*nix系统上的命令使用backtick命令替换。
date
是POSIX上的内置命令,`
s中的任何内容都被解释为shell命令,并由其值替换。
cmd.exe
根本不在backticks中进行命令替换。使用for /F delims=""
(也就是Windows shell中最强大的命令)有一些方法可以完成同样的事情,但它很麻烦。也许可以使用powershell,它支持$(command)
语法?
PS C:usersadsmith> go build -i -ldflags "-X main.SERVER_NAME=MFFP -X main.VERSION=1.0.0 -X main.BUILD_DATE=$(Get-Date -uformat .%Y%m%d%.H%M%S)"
您可能需要处理这种格式——我不确定在POSIX上应该是什么样子。该输出:
.20160107.111641
// Jan 7th 2016, 11:16:41