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

For Gazelle, how can I drop src from the generated importpath?

由于 GoPath 约定,我的存储库中的 src 目录下有所有代码。因此,生成的 BUILD.bazel 文件将 src 附加到导入路径。但是从 repo 中导入到 go 代码中不需要有 src。因此,每次添加新的 go 目录时,我都必须更新生成的导入路径。

我相信对 go-prefix 的支持即将结束。所以我不想用那个。

我可以随时更新导入路径并在末尾添加#keep 以防止后续更新。但是,我想知道是否有一种方法可以控制生成的导入路径。

您可以通过向该子树中的构建文件添加如下注释(将 example.com/repo 替换为您想要的任何内容)来设置子树中的导入路径前缀:

# gazelle:prefix example.com/repo

在您的存储库中,您可以在 src 目录中设置一个空前缀。所以在 src/BUILD.bazel 中,添加这条评论:

# gazelle:prefix