2

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

go:generate stringer -type TxStatus

我正在使用这样的 bazel genrule:

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,一切顺利。

如果您想深入了解代码,这是一个开源 Github 存储库,您可以去查看 =)

4

0 回答 0