我对 Golang 项目中的包版本控制有疑问。创建标签后,例如v1.0.0.我可以拉这个标签使用go get pkg_address/@v1.0.0它很好并且工作正常。但是当我在 github 中看到 Go 包时,我看到它写在他们的安装部分以使用pkg_address/v1.0.0.事实上,他们正在拉一个没有@.他们甚至在他们的代码中使用导入包,pkg_address/v1即使他们的项目中没有调用目录v1。如果我安装不带@.即使在使用pkg_address/@v1.0.0我的导入路径后也不会改变,我不需要在我的导入路径中指定版本。例如,您使用此命令安装 echo 包,并使用代码中go get github.com/labstack/echo/v4的标签导入包,但包目录中没有。v4v4我怎样才能像 github 包一样进行版本控制?PS我正在使用gitlab。
1 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
这是一个模块路径命名约定,它适用于高于v1
.
https://go.dev/ref/mod#module-path
如果模块以主版本2 或更高版本发布,则
module path
必须以主版本后缀结尾,例如/v2
. 这可能是也可能不是子目录名称的一部分。例如,路径为 golang.org/x/repo/sub/v2 的模块可能位于存储库 golang.org/x/repo 的 /sub 或 /sub/v2 子目录中。
https://go.dev/ref/mod#major-version-suffixes
从主要版本 2 开始,
module paths
必须有一个/v2
与主要版本匹配的主要版本后缀。例如,如果模块在 v1.0.0 中具有路径 example.com/mod,那么在 v2.0.0 中它必须具有路径 example.com/mod/v2。
echo 的 v4module path
可以在这里找到。
- 1 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消