我正在维护公司的 go 库,该库使用Semantic Versioning发布。我切换到库中的 go modules 进行依赖性管理,并在 v2 + 之后创建了一个新版本。我使用了记录在案的here的第一个策略,该策略涉及修改 go.mod 文件并导入路径。
现在,当人们使用go get命令(在也使用go模块的仓库中)时,出现错误:
invalid version: module contains a go.mod file,so major version must be compatible: should be v0 or v1,not v3
有人知道这个问题吗?
为简化起见,我创建了一个相似而简单的示例:
我有三个文件(不包括 .gitignore )的仓库( github.com/Graphmasters/testing-gomod-versioning )。这些文件是:
- methods / method.go
package methods
func Method() {
println("Method")
}
- main.go
package main
import (
"github.com/Graphmasters/testing-gomod-versioning/v3/methods"
)
func main() {
methods.Method()
}
- go.mod
module github.com/Graphmasters/testing-gomod-versioning/v3
go 1.13
在回购协议中,我根据带有此代码的分支创建了带有标签 v3.0.0 的发行版。
在使用go模块的仓库中运行以下命令时,会遇到上述错误:
go get "github.com/Graphmasters/testing-gomod-versioning@v3.0.0"