【问题标题】:Go mod download complaining about build constraintsGo mod 下载抱怨构建限制
【发布时间】:2019-08-20 01:17:11
【问题描述】:

我一辈子都想不通为什么会这样。另一个人声称这对他有用,而且我有环境问题。然而,每隔十几个项目对我来说都运行良好。

所以只是为了好玩,我从一个完全原始的 go 环境开始。 (rm -rf ~/go)

没有 go.mod/go.sum 文件。没有其他回购。没有多余的文件或任何类型的文件。除了克隆的 repo 之外,我的路径中绝对没有任何内容。

我克隆了我的 repo,然后启用了 go 模块,“go get k8s.io/code-generator”每次都会出现这个错误:

package k8s.io/code-generator: build constraints exclude all Go files in /Users/me/go/pkg/mod/k8s.io/code-generator@v0.0.0-20190813220511-4e023f69fd57

那么我这次用 go.mod 文件重复上述测试,该文件指定了所需的 k8s.io/code-generator 版本 (1.13.1)。同样的错误。

有人知道这里的交易是什么吗?我怀疑这是与 macOS 相关的问题。

【问题讨论】:

    标签: kubernetes go-modules client-go


    【解决方案1】:

    k8s.io/code-generator 包的唯一源文件有一个build constraint,指定+build tools

    go get 命令“resolves and adds dependencies to the current development module and then builds and installs them.

    由于您请求的软件包的唯一源文件不适用于您的配置(或者,实际上,适用于大多数配置),您应该通过传递 @ 来请求在下载模块后停止 go 命令987654329@ 标志到命令:

    
    $ GO111MODULE=on go1.13beta1 get k8s.io/code-generator
    go: finding k8s.io/code-generator latest
    can't load package: package k8s.io/code-generator: build constraints exclude all Go files in /tmp/tmp.qZqEJeHXeb/_gopath/pkg/mod/k8s.io/code-generator@v0.0.0-20190814140513-6483f25b1faf
    
    $ GO111MODULE=on go1.13beta1 get -d k8s.io/code-generator
    go: finding k8s.io/code-generator latest
    

    对于1.13 之前的go 命令版本,您可能还需要传递-m 标志以指示应将路径解释为模块而不是包。

    另见https://golang.org/issue/33526

    【讨论】:

    • 你如何为 go 模块实现相同的功能?没有-d 选项
    • 在撰写本文时,所有当前支持的 go 命令版本(1.13.8 和 1.14)在模块模式下接受 -d 标志到 go get
    猜你喜欢
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多