go - Go mod 使用最新版本,而不是提交
问题描述
我想根据上次提交而不是上次发布来使用库。所以我得到了那个版本:
$ 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 build
, go test
, go 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依赖于最新版本,而不是我提供的版本吗?
解决方案
该go
命令正在检查latest
版本,因为 packagegithub.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。)
推荐阅读
- svn - Tortoise SVN中如何限制部分用户提交
- javascript - 直接从 vue.js 中的 url 加载页面时找不到 URL
- r - 如何根据另一个数据库中的记分卡给每个数据框值打分?
- google-apps-script - 版本化部署似乎在 OAuth 登录后重定向到 HEAD 部署
- sql-server - 是否有任何查询可以知道在 SQL Server 中执行时存储过程中使用了哪个参数?
- python - 将 2 个数据框与 A 列合并,将值均匀地分布在 A_label 列的计数中
- sql - 简单的 SQL 问题,如果没有 SQL 中的 IF、ELSE 语句,我将无法解决
- database - 在雪花中的数据库之间迁移模式的特定对象
- regex - htaccess 文件重写 API 路由
- java - Tapestry 覆盖身份验证器