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

How to generate validators file only for message that contains validate rules?

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

在下面的示例中,实际上 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 版本

目前(自 scalapb-validate 版本 0.2.1 起)无法在添加验证插件后抑制验证的生成 类。现在唯一的方法是将您不想让验证器用于的消息与没有打开验证器插件的 SBT 子项目分开。

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