本篇文章就来带大家聊聊《控制Go包版本》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!
问题内容
我正在寻找一种方法来控制 GitHub 上的 go 包版本,类似于 package.JSON 文件中的“version”键(对于 nodejs 包)。
在 package.json 中
{
"version": "1.0.1"
}
我想将我的包导入到另一个包中,两者都使用 go 模块。在我的第二个包中,我的 go.mod 文件如下所示:
module mypackage
go 1.14
require(
github.com/myawesomepackage v0.0.0-20200531102207-93175fe4ed5f
)
现在我想对 myawesomepackage 进行更改,这样我就可以像这样重写 mypackage mod 文件:
module mypackage
go 1.14
require(
github.com/myawesomepackage v1.1.0
)
我在 myawesomepackage 中尝试了 git tag 1.1.0 和 git tag v1.1.0,但是 mypackage 在尝试更新时出现以下错误:
invalid version: unknown revision v1.1.0
更新
git tag 实际上有效,问题似乎来自我的 ide (goland)。只是重写 go.mod 文件中的版本不起作用,我不得不删除 require 语句中的整行,然后让 intellij 再次同步 依赖关系。现在 myawesomepackage 已使用正确的版本导入。
解决方案
目前尚不清楚您是否正在发布 Go 模块,或者您是否依赖其中一个。不管怎样,这都很简单;如果您是 publishing,则可以使用 git tag 来标记版本。如果您使用的是 depending 并且想要锁定到特定版本,则只需修改项目的 go.mod 文件并选择一个版本即可。
今天带大家了解了的相关知识,希望对你有所帮助;