首页 > 解决方案 > 如何在 bazel 规则中输出结构化错误信息?

问题描述

编译器错误消息通常包含大量有关潜在错误的人工可解析信息。我有自定义规则,我想以机器可解析的方式另外公开这些信息。这将允许与我的编辑器集成,向我显示需要修复的位置。

推荐的方法是什么?我能想到的最好的事情是有一个相当简单的结构,它与人类可读的部分很好地吻合,并将它包含在 stdout/stderr 中并解析它。但这似乎比包含机器可解析输出更容易出错。但是考虑到动作以二进制方式失败,没有任何可用的输出文件,我想不出任何其他机制来获取数据。

标签: bazel

解决方案


看看构建事件协议。在这里使用“进度”消息可能很有用。


推荐阅读