2016-04-27 10 views
0

私はSBTを初めて使いました。私はgradle protobuf/grpc設定をSBTに変換しようとしています。SBT protobuf grpc configuration

スカラーコミュニティが私の前でこれをやったのだろうか?

すべてのヘルプは感謝...

を私はこのプラグインhttps://github.com/sbt/sbt-protobufを試してみたが、それはgrpcのコンパイルを有効にするにはどのような構成を提供していません。

答えて

1

私は実際にGradleからSBTに移行しようとしているいくつかの問題に直面しました。

あなたが言ったように、sbt-protobufプラグインは任意のgrpc固有の設定を持っていない、まだそれが可能だ、ここにあなたがダブルチェックすべき設定のカップルです:

パスバージョンを設定
  • あなたのprotoc

    version in PB.protobufConfig := "3.0.0" protoc in PB.protobufConfig := PATH_PROTOC

  • 必要な場合は、(デフォルトはsrc/main/protobufである)あなたの.protoファイルの場所を設定します。

    sourceDirectory in PB.protobufConfig := baseDirectory.value/"src"/"main"/"proto"

  • 最後に、Eric Andersonが言ったように、grpc-javaが使用するprotocの追加オプションを設定します。最初のオプションは、protoc-gen-grpc-javaプラグインビンのパスを設定します。第二は、sbt-protobufと同じにgrpc-javaのの出力パスを設定します。

    protocOptions in PB.protobufConfig ++= Seq( "--plugin=protoc-gen-grpc-java=" + PATH_GRPC_JAVA_PLUGIN, "--grpc-java_out=" + baseDirectory.value + "/target/src_managed/main/compiled_protobuf")

私はこのすべてが整理してリポジトリを置くことになりました。 Here it is、それが助けて欲しい!

+0

共有してくれてありがとう、私は単にprotobuf世代を独立したgraldeミニプロジェクトに分離しました。正直なところ、私の周りの枠組みを持っている悲しいことに... – vach

0

私はsbtに精通していませんが、sbt-protobufはprotocプラグインをネイティブにサポートしていないか、あらかじめ組み込まれたprotocまたはprotoc-gen-grpc-javaバイナリを使用していないようです。手動でnecessary flagsを渡す必要があります。 (未テスト)このような

何か:

protocOptions in PB.protobufConfig ++= Seq(
    "--plugin=protoc-gen-grpc-java=path/to/protoc-gen-grpc-java", "--grpc-java_out=path/to/output/folder") 

あなたは、あなたのシステムに合わせて、「パス/に」の部分を変更する必要があります。

2

ScalaPBを使用して、Scala用のgRPCスタブを生成できます。まず、あなたのproject/plugins.sbtにプラグインを追加します。

addSbtPlugin("com.thesamet" % "sbt-protoc" % "0.99.1") 
libraryDependencies += "com.trueaccord.scalapb" %% "compilerplugin" % "0.5.43" 

を次に、あなたのbuild.sbtにこれを追加します。

libraryDependencies ++= Seq(
    "io.grpc" % "grpc-netty" % "1.0.1", 
    "io.grpc" % "grpc-stub" % "1.0.1", 
    "io.grpc" % "grpc-auth" % "1.0.1", 
    "com.trueaccord.scalapb" %% "scalapb-runtime-grpc" % "0.5.43", 
    "io.netty" % "netty-tcnative-boringssl-static" % "1.1.33.Fork19", // SSL support 
    "javassist" % "javassist" % "3.12.1.GA" // Improves Netty performance 
) 

PB.targets in Compile := Seq(
    scalapb.gen(grpc = true, flatPackage = true) -> (sourceManaged in Compile).value 
) 

今、あなたはsrc/main/protobufであなたの.protoファイルを置くことができ、彼らはScalaPBによってピックアップされます。

私にはexample Scala gRPC project hereがあります。相互TLS認証、JSON Webトークンを使用するユーザーセッション、​​を介したJSONゲートウェイ、およびHelm経由のKubernetesへの展開を構成する方法を示します。

関連する問題