Bazel 构建 - go:generate stringer“stringer:不可能发生:常量不是整数”

问题描述

我正在尝试在依赖于 on a go file 的 Bazel 沙箱中创建一个自动生成文件“txstatus_string.go”,它是使用以下 stringer 命令创建的:

go:generate stringer -type TxStatus

我正在使用这样的 bazel 规则:

genrule(
name = "gen-txstatus-stringer",srcs = [
    "schemachange.go",],outs = ["txstatus_string.go"],cmd = """
   GO_REL_PATH=`dirname $(location @go_sdk//:bin/go)`
   GO_ABS_PATH=`cd $$GO_REL_PATH && pwd`
   env PATH=$$GO_ABS_PATH HOME=$(GENDIR) \
   $(location @org_golang_x_tools//cmd/stringer:stringer) -output=$@ \
   -type=TxStatus $(location schemachange.go)
""",tools = [
    "@go_sdk//:bin/go","@org_golang_x_tools//cmd/stringer",

)

但不确定为什么在这种情况下,由于“stringer:不能发生:constant 不是整数”而导致 stringer 失败,有人对如何处理或为什么会发生这种情况有更好的想法吗?

我已经使用通用的 stringer 规则创建了其他一些 stringer 文件,并且一切顺利。

如果你想更深入地了解代码,这是一个 opensource Github repo,你可以去检查一下 =)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)