go mod 更新依赖项并离开本地

标签 go go-modules

我有一个使用了一些本地包的包

module mycompany.com/clientname/server

go 1.14

require (
    github.com/lib/pq v1.7.0
    github.com/99designs/gqlgen v0.11.3
    github.com/vektah/gqlparser/v2 v2.0.1
    golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
    mycompany.com/clientname/models v0.0.0-00010101000000-000000000000
    mycompany.com/common/utils v0.0.0-00010101000000-000000000000
)

replace mycompany.com/common/utils => ../../common/utils

replace mycompany.com/clientname/models => ../models

mycompany.com domain 不提供包,它只是一个虚构的路径(我在我的 gopath ~/go/src/mycompany.com/... 中使用它)

问题是当我运行 go get -u all 时,我希望更新“有效”包(如 github.com/lib/pqgithub.com/99designs/gqlgen ),但保留本地(虚构的)包。

但是go get -u all只打印出新版本,然后打印本地包上的错误,然后不更改 go.mod .

go: google.golang.org/grpc upgrade => v1.30.0
go: go.opencensus.io upgrade => v0.22.4
go: github.com/mattn/go-runewidth upgrade => v0.0.9
go: github.com/gogs/chardet upgrade => v0.0.0-20191104214054-4b6791f73a28
go: golang.org/x/text upgrade => v0.3.3
go: github.com/mitchellh/mapstructure upgrade => v1.3.2
go get all: unrecognized import path "mycompany.com/clientname/models": reading https://mycompany.com/clientname/models?go-get=1: 404 Not Found
go get all: unrecognized import path "mycompany.com/common/utils": reading https://mycompany.com/common/utils?go-get=1: 404 Not Found

最佳答案

go get -u 的错误是 go 命令中的错误,已在即将发布的 Go 1.16 版本中修复。参见 https://golang.org/issue/32567了解详情。

(也就是说,理想情况下,您应该在版本控制中托管模块并使用 GOPRIVATE=mycompany.com 而不是通过 replace 指令在本地插入内容。)

关于go mod 更新依赖项并离开本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62936075/

相关文章:

loops - 有没有办法遍历整数范围?

go - 同一方法的多个实现可能与 Go 和接口(interface)有不同的依赖关系

go - 在 Go 上有多个主要功能

ruby-on-rails - Ruby 的 grpc(v1.3.2) gem SSL/TLS 连接问题与完全在 golang 中构建的 grpc 服务器

go - 带有 go get 的 Pin 版本

go mod子目录结构

html - 具有二维数组的用于 Web 开发的 Google Go 模板

golang 模块名称更改导致本地测试失败

go - 如何在另一个模块中使用 "GOPATH"之外的模块?

go - 如何在 go mod 中升级 go 版本