使用dep导入使用Bazel的存储库

时间:2019-12-10 11:16:06

标签: go bazel dep

我正在尝试使用dep导入Go软件包。该软件包将导入其他软件包,这些软件包当然也会被dep添加到供应商目录中。但是,其中一个存储库使用Bazel,并且其WORKSPACE,BUILD.bazel和.bazelrc文件都已导入。当我们使用Bazel构建时,这与我存储库中的构建混乱。我该如何导入这样的软件包?

要提供更多具体细节,我正在尝试导入Go Helm client。我需要导入k8s.io/helm/pkg/helmk8s.io/helm/pkg/helm/portforwarderportforwarder软件包使用k8s.io/helm/pkg/kube来导入k8s.io/kubernetes。 Kubernetes repository是使用Bazel的版本。

导入后,当我运行bazel run //:gazelle时会报告错误:

gazelle: open /home/harry/go/src/repo.jazznetworks.com/vaion/vaion/vendor/k8s.io/kubernetes/BUILD.bazel: no such file or directory

这是因为该文件是指向kubernetes/build/root/BUILD.bazel的符号链接。该文件不包含Go文件,因此不会被dep导入。

如果我删除了(和其他)Bazel文件,瞪羚运行良好,但是构建代码会出现此错误:

/home/harry/.cache/bazel/_bazel_harry/792e1357c06652efb0946c55403fcb23/sandbox/linux-sandbox/24/execroot/__main__/vendor/k8s.io/kubernetes/pkg/features/kube_features.go:573:2: undefined: "vendor/k8s.io/apiserver/pkg/features".RequestManagement

查看代码后,似乎肯定没有这种RequestManagement类型,因此看起来可能存在一些版本错误?

对导入portforwarder软件包的任何帮助将不胜感激。

0 个答案:

没有答案