【问题标题】:How to generate validators file only for message that contains validate rules?如何仅为包含验证规则的消息生成验证器文件?
【发布时间】:2021-05-09 13:31:02
【问题描述】:

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

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

【问题讨论】:

    标签: scala protobuf-c scalapb


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 2011-04-29
      相关资源
      最近更新 更多