希望你今天过得愉快。
我是 Gattle 和 GRPC 的新用户,正在尝试设置一个演示来进行调查。
首先,这是我对 akka-grpc build.sbt 文件的设置:
name := "akka-grpc-quickstart-scala"
version := "1.0"
scalaVersion := "2.13.4"
lazy val akkaVersion = "2.8.4"
lazy val akkaHttpVersion = "10.5.2"
lazy val akkaGrpcVersion = "2.3.4"
enablePlugins(AkkaGrpcPlugin)
fork := true
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-http" % akkaHttpVersion,
"com.typesafe.akka" %% "akka-http2-support" % akkaHttpVersion,
"com.typesafe.akka" %% "akka-actor-typed" % akkaVersion,
"com.typesafe.akka" %% "akka-stream" % akkaVersion,
"com.typesafe.akka" %% "akka-discovery" % akkaVersion,
"com.typesafe.akka" %% "akka-pki" % akkaVersion,
// The Akka HTTP overwrites are required because Akka-gRPC depends on 10.1.x
"com.typesafe.akka" %% "akka-http" % akkaHttpVersion,
"com.typesafe.akka" %% "akka-http2-support" % akkaHttpVersion,
"ch.qos.logback" % "logback-classic" % "1.2.3",
"com.typesafe.akka" %% "akka-actor-testkit-typed" % akkaVersion % Test,
"com.typesafe.akka" %% "akka-stream-testkit" % akkaVersion % Test,
"org.scalatest" %% "scalatest" % "3.1.1" % Test
)
enablePlugins(GatlingPlugin)
libraryDependencies += "io.gatling.highcharts" % "gatling-charts-highcharts" % "3.9.5" % "test"
libraryDependencies += "io.gatling" % "gatling-test-framework" % "3.9.5" % "test"
libraryDependencies ++= Seq(
"io.gatling.highcharts" % "gatling-charts-highcharts" % "3.9.5" % "test",
"io.gatling" % "gatling-test-framework" % "3.9.5" % "test",
"com.github.phisgr" % "gatling-grpc" % "0.16.0" % "test"
)
然后我把它放在我的plugins.sbt中
addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "2.3.4")
addSbtPlugin("com.lightbend.sbt" % "sbt-javaagent" % "0.1.5")
addSbtPlugin("io.gatling" % "gatling-sbt" % "4.5.0")
所以我在设置过程中遇到了 3 个问题:
1/ 当我运行“sbtcompile”时,项目将显示 .proto 文件,但它不在 src/main/ 或 src/test/ 目录中,我必须将文件复制并粘贴到其中。这是 sbt 的正确行为吗?
2/ 我尝试在集线器上运行 phisGr 的代码,但是该项目位于 IntelliJ IDE 中(目前我使用 VSCode 并且无法更改它),所以我想请求一个简单的加特林脚本,与 akka-grpc 演示一起运行(grpc 演示运行良好 - 只需要加特林实现示例)。
3/ GRPC - Gattle 会有更新或更多文档吗?因为网上的资料不多。目前的内容缺乏很多信息。
感谢您的阅读。
尝试了很多例子。
当我运行“sbtcompile”时,项目将显示 .proto 文件,但它不在 src/main/ 或 src/test/ 目录中,我必须将文件复制并粘贴到其中。这是 sbt 的正确行为吗?
从你的描述中我无法判断哪个文件位于哪个目录中。我的猜测是您正在谈论生成的 Scala 代码。它们是
.proto
文件的编译结果,因此它们位于 target
目录中。.class
es。
您的 IDE 是否足够智能来索引生成的源代码是另一回事。
我尝试在集线器上运行 phisGr 的代码,但是该项目位于 IntelliJ IDE 中(目前我使用的是 VSCode 并且无法更改它),所以我想请求一个简单的 Gattle 脚本,其中包含akka-grpc 演示运行(grpc 演示运行良好 - 只需要加特林实现示例)。
使用 IntelliJ 开发的库与您如何使用它无关。如果需要,您可以不使用 IDE,而使用简单的文本编辑器并从命令行运行
sbt
。
这是 Gadling-gRPC 的演示;
https://github.com/phiSgr/gadling-grpc-sbt-demo
这是在 Akka gRPC 服务器上使用 Gadling-gRPC 的演练,可以在 google 上轻松找到。
https://alexromanov.github.io/2021/08/23/gadling-grpc/
如果你不熟悉 sbt,为什么选择 Scala 的东西?您可以将 Gattle 和 gPRC 与 Gradle/Maven 和 Java/Kotlin 结合使用。