【问题标题】:Control Go package version控制 Go 包版本
【发布时间】:2020-05-31 10:45:10
【问题描述】:

我正在寻找一种方法来控制 github 上的 go 包版本,类似于 package.json 文件中的“版本”键(用于 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.0git tag v1.1.0,但是 myPackage 在尝试更新时出现以下错误:

invalid version: unknown revision v1.1.0

更新

git tag 确实有效,问题似乎来自我的 Ide (GoLand)。只是在 go.mod 文件中重写版本没有用,我不得不删除 require 语句中的整行,然后让 IntelliJ 再次同步 依赖关系。现在 myAwesomePackage 已导入正确的版本。

【问题讨论】:

    标签: git go version-control go-modules


    【解决方案1】:

    不清楚您是在发布一个 Go 模块,还是依赖于一个模块。无论哪种方式,它都很简单;如果您是publishing,您可以使用git tag 标记一个版本。如果您是 depending 并希望锁定到特定版本,您只需修改项目的 go.mod 文件并选择一个版本即可。

    【讨论】:

    • 我会更新我的问题。我实际上想在 github 上发布一个,所以在另一个 go.mod 文件中我可以使用受控版本导入我的第一个包。
    • 我在第一个包上尝试了git tag v1.1.0,但是当我尝试将它导入另一个 go.mod 文件时,我收到了错误unknown revision v1.1.0
    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 2018-08-08
    • 2012-01-09
    • 1970-01-01
    • 2010-10-01
    • 2019-04-22
    • 2017-12-07
    • 2010-09-22
    相关资源
    最近更新 更多