将avro集成到sbt工作流

时间:2016-12-01 23:00:40

标签: java scala sbt avro sbt-assembly

我计划在基于Scala的项目中使用Avro架构(使用sbt构建),并且我正在尝试找出在构建远程jar时使用基于Avro的类的正确方法我的项目(使用sbt assembly)。

以下是我想到的步骤列表:

(a)将avro架构文件放在src/main/avro

(b)从架构文件中生成java/scala个类到src/main/javasrc/main/scala

(c)生成脂肪罐。

问题

(i)完成步骤(b)的正确方法是什么?我注意到Apache Avro项目提供了一个名为avro-tools-1.8.1.jar的jar,用于从模式文件生成java类。但是,我不确定如何在基于sbt的工作流中使用此jar文件。

(ii)我注意到的另一个选择是有第三方sbt插件(例如:sbt-avrohuggerscavrosbt-avro等。是否有推荐的sbt插件?由于这些是第三方插件,我无法确定哪一个是最好的。

1 个答案:

答案 0 :(得分:3)

我目前正在使用: sbt-avro

我的配置如下build.sbt

seq(sbtavro.SbtAvro.avroSettings: _*)
(javaSource in avroConfig) := baseDirectory.value / "src/main/java/"
(stringType in avroConfig) := "String"

手动生成java文件:

sbt avro:generate

生成胖罐:

sbt assembly