2016-12-01 8 views
1

私はScalaベースのプロジェクト(sbtを使用して構築)でAvroスキーマを使用する予定です。遠隔瓶を構築するときにAvroベースのクラスを組み込む正しい方法を見つけようとしています私のプロジェクトから(sbt assemblyを使って)。続きavtroをsbtワークフローに統合する

は私が念頭に置いていた手順のリストです:

の(a)(b)のsrc/main/javaまたはsrc/main/scala

にスキーマファイルから java/scalaクラスを生成 src/main/avro

avroスキーマファイルを配置します

(c)ファットジャーを生成する。

質問

(I)何が工程(b)を得るための正しい方法でしょうが行なわ?私はApache AvroプロジェクトがスキーマファイルからJavaクラスを生成するためにavro-tools-1.8.1.jarという名前のjarを提供していることに気付きました。しかし、私はこのjarファイルがsbtベースのワークフローでどのように使用できるのかよく分かりません。

(ii)別のオプションとして、サードパーティ製のsbtプラグインがあります(例:sbt-avrohuggerscavrosbt-avroなど)。お勧めのsbtプラグインはありますか?これらはサードパーティ製のプラグインなので、どのプラグインが最適かわかりません。私は現在、使用してい

答えて

2

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

ありがとうBinzi! sbt-avroの使用中に問題が発生しましたか?それとも、安定していますか? – jithinpt

+0

ええ、それは使用するのがかなり安定しています –

関連する問題