這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
golang編譯時間設定版本號碼
無論用什麼語言寫代碼,版本是很重要的一個東西。一般來說,用-v或者--version參數來輸出程式的版本是一個好辦法。話不多說,上程式碼片段。
package mainimport ( "flag" "fmt" "os")var VersionStr = "unknown"func main() { version := flag.Bool("v", false, "Show Version") flag.Parse() if *version { fmt.Println(VersionStr) os.Exit(0) }}
編譯指令碼:
#!/bin/bash -xefunction getversion() { branch=`git rev-parse --abbrev-ref HEAD` commitid=`git rev-parse --short HEAD` builddate=`date +%Y%m%d-%H%M%S` echo $branch-$commitid-$builddate}cd `dirname $0`# use go vendorexport GO15VENDOREXPERIMENT=1version=`getversion`pkgpath="github.com/auxten/logrus/examples/basic"echo "build log-linux"GOOS=linux GOARCH=amd64 go build -ldflags "-X main.VersionStr=${version}" -o bin/log-linux ${pkgpath}#echo "build log-osx"#GOOS=darwin GOARCH=amd64 go build -ldflags "-X main.VersionStr=${version}" -o bin/log-osx ${pkgpath}#echo "build log-win#GOOS=windows GOARCH=386 go build -ldflags "-X main.versionStr=${version}" -o bin/log-win ${pkgpath}echo "done"
這樣,就可以把運行./bin/log-linux -v就可以把git分支-commitId-編譯時間輸出出來了。
著作權聲明:轉載請註明文章來源:Reboot-51