私はSBTを初めて使いました。私はgradle protobuf/grpc設定をSBTに変換しようとしています。SBT protobuf grpc configuration
スカラーコミュニティが私の前でこれをやったのだろうか?
すべてのヘルプは感謝...
を私はこのプラグインhttps://github.com/sbt/sbt-protobufを試してみたが、それはgrpcのコンパイルを有効にするにはどのような構成を提供していません。
私はSBTを初めて使いました。私はgradle protobuf/grpc設定をSBTに変換しようとしています。SBT protobuf grpc configuration
スカラーコミュニティが私の前でこれをやったのだろうか?
すべてのヘルプは感謝...
を私はこのプラグインhttps://github.com/sbt/sbt-protobufを試してみたが、それはgrpcのコンパイルを有効にするにはどのような構成を提供していません。
私は実際に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、それが助けて欲しい!
私は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")
あなたは、あなたのシステムに合わせて、「パス/に」の部分を変更する必要があります。
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への展開を構成する方法を示します。
共有してくれてありがとう、私は単にprotobuf世代を独立したgraldeミニプロジェクトに分離しました。正直なところ、私の周りの枠組みを持っている悲しいことに... – vach