golang程式新增版本號

2021-09-28 12:39:00 字數 1518 閱讀 2148

這段時間專案經常發布版本,導致我們版本管理混亂。特別是在真實環境上面,沒有了版本控制軟體協助版本管理,我們無法確認程式到底是新版本還是舊版本。這給我們排查問題帶來了很大困擾。於是,我就想給程式本身打上版本號,通過程式就可以看到程式是新版本還是舊版本了。

檢視資料發現golang不能像c++那樣通過巨集定義方式來設定版本號,但是可以在build 時新增引數-ldflags 來新增版本號,如下:

go build -ldflags "-x 'main.minversion=1.0.0.1' "

-a -v -o ***.exe main.

go

這樣,通過以上編譯語句,每次發布版本時,更改main.minversion=1.0.0.1為相應的版本號即可。

如果,哪一次我們忘記了更改版本號就發布出去了,怎麼辦?沒辦法,因為版本號沒有沒有改,我們無法分辨新版本與舊版本。那麼,如何優化這個問題呢?我想給這個版本號新增乙個時間戳!這樣即使忘記了更改版本號,也可以通過時間戳來確定新舊版本。編譯引數如下:

set releasedate=

%date:~0,4

%%date:~5,2

%%date:~8,2

%%time:~0,2

%%time:~3,2

%%time:~6,2

%go build -ldflags "-x 'main.minversion=1.0.0.1' -x 'main.publishdate=%releasedate%'"

-a -v -o ***.exe main.

go

**裡面也需要做對應修改,還是貼上**吧:

package main

import

("fmt"

)var minversion string

var publishdate string

func

main()

列印出來的效果是這樣的:

當前版本號:

1.0.0

.1 發布日期:

20191011103222

嘿嘿,這樣既有版本號,又有時間戳,就不怕不能區分程式版本啦~~~

這裡順便介紹一下日期格式吧

%date:~0,4% 表示從左向右指標向右偏0位,然後從指標偏移到的位置開始提取4位字元,結果是2014(年的值)

%date:~5,2% 表示指標從左向右偏移5位,然後從偏移處開始提取2位字元,結果是03(月的值)

%date:~8,2% 表示指標從左向右偏移8位,然後從偏移處開始提取2位字元,結果是01(日的值)

%date:~5% 表示指標從左向右偏移5位,然後提取所有的值

%date:~-5% 表示指標反方向偏移,從最右端開始,偏移5位,然後從指標處提取左邊的所有數值。

注意:以上編譯指令碼,只適用於windows系統環境下編譯。如果需要在linux下面使用需要將對應的cmd命令轉換成shell命令。

seajs版本號新增

with 24 comments 用 seajs 組織專案,上線後,經常需要更新特定檔案或所有檔案的時間戳,以清空瀏覽器快取。最簡單的方式是 define function require,exports 這種方式很簡單直觀,弊端也很明顯 檔案一多,時間戳會分散在各個檔案,維護起來不方便。第二種方式...

golang 獲取exe dll apk 版本號

通過go獲取exe dll apk版本號,支援誇平台,可交叉編譯。換了個賬號,審核下。我把另乙個賬號的文章都會刪掉。golang 實現讀取exe dll apk 版本號 獲取exe dll版本 func f fileinfo getexeversion err error peoffset f.un...

golang實現版本號比較

寫一下,好久沒更新部落格了。import fmt strings testing time created by 908204694 qq.com 版本號大 const versionbig 1 版本號小 const versionsmall 2 版本號相等 const versionequal 0...