【问题标题】:Integrating avro into sbt workflow将 avro 集成到 sbt 工作流程中
【发布时间】:2017-04-16 18:14:51
【问题描述】:

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

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

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

(b) 将架构文件中的java/scala 类生成src/main/java 或src/main/scala

(c) 生成胖罐子。

问题

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

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

【问题讨论】:

    标签: java scala sbt avro sbt-assembly


    【解决方案1】:

    我目前正在使用: 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
    

    【讨论】:

    • 谢谢彬子!你在使用 sbt-avro 时遇到过什么问题吗?还是稳定了?
    • 嗯,用起来挺稳定的
    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多