亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查找當前主模塊的偽版本

查找當前主模塊的偽版本

Go
守著星空守著你 2022-10-04 18:45:23
我有一個Go codegen工具,在將其構建為二進制文件時,我想在構建時使用Go工具為它的主模塊注入它自己的當前偽版本。我知道對于依賴項,我可以使用 或 找到它們的偽版本。主模塊的版本列為空。go list -m allgo list -m -f '{{ .Version }}' $MODULE我知道我可以計算出當前的偽版本:git describe --tags `git rev-list --tags --max-count=1`和:TZ=UTC git --no-pager show \   --quiet \   --abbrev=12 \   --date='format-local:%Y%m%d%H%M%S' \   --format="%cd-%h"要得到一個合理的近似值,例如:v0.3.0-20210907161133-495c072cb418在我擁有偽版本之后,我打算在構建時注入它,如下所示:go build -ldflags="-X generate.version v0.3.0-20210907161133-495c072cb418" -o mytool ./main.go但是,建議直接使用Go工具來獲取當前的偽版本,而不是我在餐巾紙上解決的一些黑客抨擊問題。關于如何做到這一點的任何建議?
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

偽版本的問題是,它只是VCS中特定修訂版的編碼(不僅僅是Git)。

而且,它通常用于模塊沒有 semver 標記,或者當您只需要特定修訂版(可以是分支名稱)時。

偽版本可能是指沒有語義版本標記可用的修訂版。它們可用于在創建版本標記之前測試提交,例如,在開發分支上。

因此,要擁有偽版本,首先必須參考修訂版?,F在,哪一個是最準確地描述您的項目的修訂版,這將取決于您。分支的尖端可能就足夠了,因此:master

go list -f '{{.Version}}' -m example.com/mymodule@master

請注意 語法 ,它允許您選擇特定的修訂版,因此,獲取相應的偽版本。module@version


查看完整回答
反對 回復 2022-10-04
  • 1 回答
  • 0 關注
  • 75 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號