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