gpt4 book ai didi

git - 如何使用语义版本构建 Go Module?

转载 作者:IT王子 更新时间:2023-10-29 02:06:43 26 4
gpt4 key购买 nike

以下是使用 git 存储库设置新的最小 Go 模块项目的 bash 步骤,提交它,并使用带注释的语义版本标签对其进行标记:

mkdir gotest
cd gotest

git init

go mod init test.org/simple

cat <<EOT >> app.go
package main

import (
"fmt"
"runtime/debug"
)

func main() {
fmt.Println("hello world")

if bi, ok := debug.ReadBuildInfo(); ok {
fmt.Printf("version=%v. sum=%v\n", bi.Main.Version, bi.Main.Sum)
} else {
fmt.Println("Failed to get build info")
}
}
EOT

echo "simple" >> .gitignore

git add go.mod app.go .gitignore
git commit -am "initial commit"
git tag -am "initial semantic version" v0.1.0

快速验证它是否被正确标记:

git tag -n
git describe --dirty

构建并运行:

go build
./simple

产生:

hello world
version=(devel). sum=

我希望看到我标记存储库的语义版本。相反,我得到了虚拟占位符版本。怎么了?

最佳答案

go 命令不会查询版本控制来确定您的存储库是否是语义版本(即 https://golang.org/issue/29228)的原始 checkout 。

如果你用一些其他模块作为主模块构建二进制文件,那么go命令应该知道你的模块是哪个版本在使用中并将其嵌入生成的二进制文件中:

go.mod:

module example.com/other

require test.org/simple v0.1.0

go build test.org/simple && ./simple

关于git - 如何使用语义版本构建 Go Module?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56656862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com