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。
简介: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。