为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 中的包版本控制

Golang 中的包版本控制

Go
30秒到达战场 2023-02-06 19:00:53
我对 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可以在这里找到。


查看完整回答
反对 回复 2023-02-06
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信