0

如何仅为包含验证规则的消息生成验证器文件?

在下面的示例中,实际上 sbt 编译生成 4 个 scala 类:一个用于 protobufA,一个用于 protobufB,一个用于两者的验证器消息。

    int32 id = 1;
    string action = 2 [(validate.rules).string = {in: ["tonic", "gin", "martini"]}];
}
message protobufB {
    option (scalapb.message).annotations = "@JsonNaming(classOf[SnakeCaseStrategy])";
    int32 id = 1;
    string name = 2 ;
}

我只想生成三个类:一个用于 protobufA,一个用于 protobufB,最后一个用于 protobufA 验证器类。

我有scalapb-validate-codegen 0.1.3 版。

4

1 回答 1

0

一旦添加了验证插件,目前(从 scalapb-validate 的 0.2.1 版开始)无法抑制验证类的生成。唯一的方法,现在要做到这一点,就是将您不想拥有验证器的消息分开,以分离没有打开验证器插件的 SBT 子项目。

随意在scalapb-validate github上发起一个 github 问题,将其作为功能请求进行讨论,并包括此类更改的动机。这需要一些思考,因为具有验证器的消息需要它们传递引用的所有消息也具有验证器,因此插件必须在禁用生成时检测这种情况。

于 2021-02-07T01:34:58.377 回答