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

问题描述

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

在下面的示例中,实际上 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 问题,将此作为功能请求进行讨论,并包括进行此类更改的动机。这需要一些思考,因为具有验证器的消息需要它们传递引用的所有消息也具有验证器,因此插件必须在禁用生成时检测这种情况。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...