【问题标题】:Go mod use last version, not commitGo mod 使用最新版本,而不是提交
【发布时间】:2021-02-13 04:46:06
【问题描述】:

我想根据上次提交而不是上次发布来使用库。所以我得到了那个版本:

$ go get github.com/epsagon/epsagon-go@636ea43

现在在包缓存中我有:

$ cd /Users/sgetman/go/pkg/mod/github.com/epsagon && ls

epsagon-go@v1.14.0                  epsagon-go@v1.14.1-0.20201105151128-636ea43d1943

但是当我尝试go buildgo testgo mod tidy

go: finding module for package github.com/epsagon/epsagon-go/epsagon/wrappers/gin
github.com/nexmoinc/neru-runtimelib/router imports
        github.com/epsagon/epsagon-go/epsagon/wrappers/gin: module github.com/epsagon/epsagon-go@latest found (v1.14.0), but does not contain package github.com/epsagon/epsagon-go/epsagon/wrappers/gin

同时我的go.mod:

require (
    ...
    github.com/epsagon/epsagon-go v1.14.1-0.20201105151128-636ea43d1943
    ...
)

go.sum:

github.com/epsagon/epsagon-go v1.14.0 h1:Tq7qyoyDs2aUCc/UsQEHFt89aXVdUmjWXHwvS5kfSC4=
github.com/epsagon/epsagon-go v1.14.1-0.20201105151128-636ea43d1943 h1:kJGvRsqRfo1h8vEEGajWa+szA9965Epw83Fm3UmmwEc=
github.com/epsagon/epsagon-go v1.14.1-0.20201105151128-636ea43d1943/go.mod h1:Q73D3EhfzqmQa6m6Xi5n0Ugw9l6XSNGCzMcozsFMD1c=

能否请您帮我整理一下为什么 go mod 依赖于最新版本,而不是我提供的版本?

【问题讨论】:

  • 至少,你应该在你的代码中使用这个导入路径github.com/epsagon/epsagon-go/wrappers/gin
  • 我做了,同样的错误

标签: go go-modules


【解决方案1】:

go 命令正在检查latest 版本,因为包github.com/nexmoinc/neru-runtimelib/router 包含import 语句,如import "github.com/epsagon/epsagon-go/epsagon/wrappers/gin"

github.com/epsagon/epsagon-go v1.14.1-0.20201105151128-636ea43d1943 不包含这样的包,因此go 命令试图确定它是否可以将该模块升级到较新的版本以找到导入的包。

如果您运行go build -mod=readonly,您有望获得更清晰的错误消息。 (请注意,-mod=readonly 将是 Go 1.16 的默认值:请参阅 https://tip.golang.org/doc/go1.16#modules.

【讨论】:

    猜你喜欢
    • 2019-08-23
    • 1970-01-01
    • 2013-03-06
    • 2020-06-25
    • 1970-01-01
    • 2012-05-22
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多