Интеграция avro в рабочий процесс sbt

2

Я планирую использовать схемы Avro в моем проекте на основе Scala (построенном с использованием sbt), и я пытаюсь выяснить правильный способ включения классов, основанных на Avro, при построении далекой банки из моего проекта (с использованием sbt assembly),

Ниже приведен список шагов, которые я имел в виду:

(a) Поместите файлы схемы avro в src/main/avro

(b) Создание классов java/scala из файлов схемы в src/main/java или src/main/scala

(c) Генерировать жировую банку.

Вопросов

(i) Каким будет правильный способ сделать шаг (б)? Я заметил, что проект Apache Avro предоставляет банку с именем avro-tools-1.8.1.jar для создания классов Java из файлов схемы. Однако я не уверен, как этот файл jar можно использовать в рабочем процессе на основе sbt.

(ii) Еще один вариант, который я заметил, - это сторонние плагины sbt (например: sbt-avrohugger, scavro, sbt-avro и т.д.). Рекомендуется ли использовать sbt-плагин? Поскольку это сторонние плагины, я не мог быть уверен, какой из них лучше.

Теги:
sbt
avro
sbt-assembly

1 ответ

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
  • 0
    Спасибо Бинзи! Вы сталкивались с какими-либо проблемами при использовании sbt-avro? Или это было стабильно?
  • 0
    Да, он достаточно стабилен в использовании

Ещё вопросы

Сообщество Overcoder
Наверх
Меню