1

我正在尝试生成SpecificRecord使用 sbt-avrohugger实现的 Scala 案例类。当我有一个干净的石板并且我只有 src/main/avro 中的 avro 文件时,它的效果非常好。但我有点坚持为 avro 的增量更改生成 scala 类。我在用

addSbtPlugin("com.julianpeeters" % "sbt-avrohugger" % "2.0.0-RC15")

我的 build.sbt 有:

sourceGenerators in Compile += (avroScalaGenerateSpecific in Compile).taskValue
avroSpecificScalaSource in Compile := new java.io.File("/Users/me/project/myschemas/scalacaseclasses")

1)有没有办法为avro的增量更改生成scala案例类而不删除现有的scala类(必须这样做,否则当我编译时,它抱怨说

[错误] /Users/me/project/myschemas/scalacaseclasses/com/project/schemas/user/User.scala:6: User 已经定义为案例类 User )。用干净的石板重新开始时,它不会抱怨。

基本上我的情况是我有一堆 avros:用户、访问者和其他一些类。假设我在第一个版本的用户中有名称和 ID,然后我为用户添加了地址。我想知道这是否可以为已经存在的类重新生成案例类。

或者实现这一点的唯一方法是为每个新的 avro 文件生成案例类。

PS:我已经有一个解决方法,我在每个新的 avro 文件上循环并复制新的类,但我想看看是否有更好的方法来做到这一点!

4

0 回答 0