国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

在Golang代碼中如何自動(dòng)生成版本號(hào)的方法示例

2020-04-01 19:04:57
字體:
供稿:網(wǎng)友

前言

以前在寫C/C++代碼時(shí),可以在代碼中預(yù)定義一些版本宏定義,然后再編譯時(shí)從外部傳入數(shù)據(jù)作為版本號(hào)golang/196398.html">golang代碼不支持宏定義,如果每次在代碼中硬編碼版本信息,一來費(fèi)時(shí)費(fèi)力,二來很容易忘記更新。

如何更優(yōu)雅的維護(hù)golang程序的版本號(hào)呢?

翻閱golang文檔之后,在go build發(fā)現(xiàn)下面的參數(shù)

-ldflags 'flag list' arguments to pass on each go tool link invocation.

然后在linker中發(fā)現(xiàn):

-X importpath.name=value Set the value of the string variable in importpath named name to value. Note that before Go 1.5 this option took two separate arguments. Now it takes one argument split on the first = sign.

按照文檔中的說明應(yīng)該是在build時(shí),通過-ldflags設(shè)定linker的參數(shù)。 然后再通過linker的-X來修改指定路徑下面的變量值。

按照這個(gè)邏輯,我們改寫下面的程序:

package mainimport (  "fmt")var _VERSION_ = "unknown"func main() {  fmt.Printf("Version:[%s]/n", _VERSION_)}

執(zhí)行下面的build命令:

export TAG=dev-xxxx go build -ldflags "-X main._VERSION_='$TAG'" 

在執(zhí)行程序時(shí),就可以看到輸出預(yù)定義的版本號(hào)了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金堂县| 高平市| 高青县| 新野县| 宣化县| 古蔺县| 合肥市| 清河县| 重庆市| 宁都县| 蕉岭县| 革吉县| 华池县| 元江| 伽师县| 平顺县| 达日县| 湟源县| 黄梅县| 伊金霍洛旗| 久治县| 北票市| 清镇市| 阳高县| 汝南县| 达日县| 凤山市| 博客| 文成县| 昭平县| 雅安市| 白玉县| 津市市| 湘潭市| 安徽省| 双柏县| 邹城市| 望谟县| 天气| 汉阴县| 太湖县|