【问题标题】:Disable go modules caching via pkg.go.dev通过 pkg.go.dev 禁用 go 模块缓存
【发布时间】:2021-06-02 02:27:04
【问题描述】:

我真的很纠结 go 模块。 https://pkg.go.dev/ 中的缓存似乎是永久的,无法清除缓存。如果您从具有多个 go 模块的 monorepo 更改,则无法更新到根目录中的一个 go.mod。

例如,如果您将 github.com/web-ridge/gqlgen-sqlboiler/v2/boiler 添加为导入,它将继续引用 https://pkg.go.dev/mod/github.com/web-ridge/gqlgen-sqlboiler/boiler@v0.0.0-20200424102639-0c95b5d41c2c?tab=packages,而它应该引用根目录。

我已将所有目录移至根目录以解决此问题:https://github.com/web-ridge/gqlgen-sqlboiler

当我运行 go mod tidy 时,它会添加 github.com/gertd/go-pluralize v0.1.4,虽然 GitHub 上不再是这种情况,但仍然是 https://pkg.go.dev/github.com/gertd/go-pluralize@v0.1.4?tab=doc

有什么方法可以禁用 pkg.go.dev 或让它们刷新库吗?

【问题讨论】:

  • 如果您已从多个模块更改为单个模块,这是一个重大更改,应该已发布为 v2.0.0,这样可以避免 pkg.go.dev 出现任何问题。
  • 啊好吧!我确实将 v2 更改为 go 模块,但没有更改为 GitHub 标记。 go 复数呢?我认为他们确实重写了 git 历史或类似的东西。
  • 感谢您的帮助,我想我现在更了解 go 模块和版本控制 ;-)

标签: go go-modules


【解决方案1】:

要更新 pkg.go.dev 中软件包的版本缓存,然后将此命令保存到您正在使用的 Makefile 或任务管理器中:

update-pkg-cache:
 GOPROXY=https://proxy.golang.org GO111MODULE=on \
 go get github.com/$(USER)/$(PACKAGE)@v$(VERSION)

现在运行以下命令,即

$ make update-pkg-cache USER=gertd PACKAGE=go-pluralize VERSION=1.16.3
  • USER 是您的 GitHub 用户名或组织名称。
  • PACKAGE 是要更新缓存的包的名称。
  • VERSION 是更新缓存的版本号。

【讨论】:

    猜你喜欢
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 2016-10-01
    相关资源
    最近更新 更多