dep 和 bazel Go 规则之间是否有 link?

Is there a link between dep and the bazel Go rules?

简介:dep is a tool to manage dependencies of Go projects. bazel is a build tool that produces stable, reproducable builds. There is a bazel rule set for Go projects,包括一个自动构建文件生成器,gazelle, 按照 go build 将适用的约定生成 Bazel 构建文件,使用 bazel WORKSPACE.

中声明的依赖项

WORKSPACE,不过,我必须手动创建或借助一个有点老套的辅助工具 wtool。另一方面,dep 有助于跟踪依赖项,能够将它们下载到 vendor/ 目录并锁定特定版本。

在我看来,dep 用来指定依赖项版本的 Gopkg.lock 文件(通常通过其 VCS 提交哈希)很容易转换为 bazel WORKSPACE 文件。我也在公司内部项目中手动成功完成了此操作。

bazel 及其 Go 规则和 dep 之间是否存在我可以使用而不是手动执行此操作的现有 link?

(另外:还有其他人这样做吗?我应该这样做吗?)

没有现成的工具,但将锁定文件中的条目转换为 WORKSPACE 应该非常简单。

我们正在考虑向 Gazelle 构建文件生成器发出命令以帮助解决此问题(不仅适用于 dep,还适用于其他工具)。主要计划是让 Gazelle 自动添加缺少的存储库,但这需要更多时间才能实现。

有一个非常新的、正在积极开发的项目:https://github.com/scele/rules_go_dep