草庐IT

go - 对于 Gazelle,如何从生成的导入路径中删除 src?

由于GoPath约定,我的代码库中的src目录下有所有代码。因此,生成的BUILD.bazel文件将src附加到导入路径。但是从repo中导入到go代码中不需要有src。因此,每次添加新的go目录时,我都必须更新生成的导入路径。我相信对go-prefix的支持即将结束。所以我不想用那个。我总是可以更新导入路径并在末尾添加#keep以防止后续更新。但是,我想知道是否有一种方法可以控制生成的导入路径。 最佳答案 您可以通过向该子树中的构建文件添加如下注释(将example.com/repo替换为任何您想要的)来设置子树中的导入路径前缀:

go - 对于 Gazelle,如何让它使用 WORKSPACE 中定义的 go_repository?

在我的WORKSPACE中,我为importpathgolang.org/x/net定义了go_repostitory。go_repository(name="org_golang_x_net",commit="5ccada7d0a7ba9aeb5d3aca8d3501b4c2a509fec",importpath="golang.org/x/net",)但是当我运行gazelle时,BUILD.Bazel中添加的依赖不是@org_golang_x_net//context:go_default_library。相反,它是以下内容://golang.org/x/net/context:

go - 对于 Gazelle,如何让它使用 WORKSPACE 中定义的 go_repository?

在我的WORKSPACE中,我为importpathgolang.org/x/net定义了go_repostitory。go_repository(name="org_golang_x_net",commit="5ccada7d0a7ba9aeb5d3aca8d3501b4c2a509fec",importpath="golang.org/x/net",)但是当我运行gazelle时,BUILD.Bazel中添加的依赖不是@org_golang_x_net//context:go_default_library。相反,它是以下内容://golang.org/x/net/context:

go - 提交 Gazelle 生成的 `BUILD.bazel` 文件是最佳做法吗?

我有一个使用rules_go的Go项目(Bazel)构建项目。我正在使用Gazelle生成BUILD.bazel文件。将生成的BUILD.bazel文件提交到版本控制中是否被认为是最佳实践?还是在新结帐时和添加新文件时始终执行bazelrun//:gazelle是最佳实践? 最佳答案 是的,出于多种原因,提交构建文件通常是最佳做法。构建文件经常包含未生成的规则、注释和注释。例如,您可能需要编写一个genrule来替换gogenerate。或者您可以编写一个测试来检查源文件中的版权header是否是最新的。或者您可能想要调整您的某些图

go - 提交 Gazelle 生成的 `BUILD.bazel` 文件是最佳做法吗?

我有一个使用rules_go的Go项目(Bazel)构建项目。我正在使用Gazelle生成BUILD.bazel文件。将生成的BUILD.bazel文件提交到版本控制中是否被认为是最佳实践?还是在新结帐时和添加新文件时始终执行bazelrun//:gazelle是最佳实践? 最佳答案 是的,出于多种原因,提交构建文件通常是最佳做法。构建文件经常包含未生成的规则、注释和注释。例如,您可能需要编写一个genrule来替换gogenerate。或者您可以编写一个测试来检查源文件中的版权header是否是最新的。或者您可能想要调整您的某些图

go - Gazelle 可以为外部 Go 项目运行吗?

我有一个BazelWORKSPACE,我想从中导入一个外部Gogit存储库。我想知道最佳做法是始终拥有GazelleBUILD.bazel文件,还是我的源WORKSPACE可以以某种方式触发Gazelle生成文件,这样我就不需要checkin它们了?如果我不是上游存储库的所有者,则后者是有意义的。 最佳答案 外部git存储库是常规的Go存储库吗?可以“goget”构建吗?如果是这样,当前的最佳做法是使用go_repository在您的WORKSPACE文件中。像这样:load("@io_bazel_rules_go//go:def.