使用 sbt-avrohugger 生成 scala avro 特定记录

问题描述 投票:0回答:1

我正在尝试使用生成实现

SpecificRecord
的 Scala 案例类 sbt-avrohugger。当我有一个干净的石板并且我拥有的只是 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 )。当一切从头开始时,它不会抱怨。

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

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

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

scala sbt avrohugger
1个回答
0
投票

以下设置不应发生这种情况:

avroSpecificScalaSource in Compile := (Compile / baseDirectory).value / "myschemas/scalacaseclasses"
© www.soinside.com 2019 - 2024. All rights reserved.