Go語言學習Tips(二)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
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

  • 如果文章對您有協助,請關注一下,點個贊吧!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.