Go语言 如何用Gazelle grep解决Bazel错误

gev0vcfq  于 2023-05-20  发布在  Go
关注(0)|答案(1)|浏览(86)

我在我的golang项目中使用了Bazel和Gazelle。(Windows环境)我认为一切都安装和设置正确。但是我在CMD中输入“bazel run -s //:gazelle”有人能帮忙吗?谢谢!x1c 0d1x

pkwftd7m

pkwftd7m1#

这似乎是Gazelle启动脚本如何查找清单文件的问题。如果打开“execroot\code\bazel-out\x64_windows-fastbuild\bin\gazelle”,您将找到运行gazelle时调用的bash脚本。
删除写保护,然后转到第39行:

if grep -q "^$runfile" "$0.runfiles_manifest"; then
    grep "^$runfile" "$0.runfiles_manifest" | head -n 1 | cut -d' ' -f2
    return

请注意,这部分脚本搜索$0.runfiles_manifest$0是正在运行的脚本,因此gazelle在我的系统上,文件gazelle.runfiles_manifest不存在,但gazelle.exe.runfiles_manifest存在。因此,我在这里添加了.exe扩展,至少脚本的这一部分完成了。
但是,它并没有给我带来多大帮助--即使grep命令成功,也会发生一些后续错误。

INFO: Analyzed target //:gazelle (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //:gazelle up-to-date:
  bazel-bin/gazelle-runner.bash
  bazel-bin/gazelle
  bazel-bin/gazelle.exe
INFO: Elapsed time: 3.659s, Critical Path: 0.02s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Running command line: bazel-bin/gazelle.exe
2023/05/15 17:22:57 failed to initialize parser: Runfile python/parse: could not locate file

我使用的是bazel 6.1.2版本。在任何情况下,最好在GitHub上打开一个问题以获得更好的支持。

相关问题