259 字
1 分钟
java或者kotlin在gradle中如何使用grpc
gralde 配置
kotlin 要使用 grpc 需要配置ksp这个插件所以第一步就是添加ksp插件
plugins { id("com.google.devtools.ksp") version "xxx.xxx"}添加protobuf插件
plugins { id("com.google.devtools.ksp") version "xxx.xxx" id("com.google.protobuf") version "xxx.xxx"}添加grpc的依赖
这里要特别注意下grpc-netty中的netty可能会和其他依赖中的netty冲突,需要你自己排除掉其中一个的netty。
dependencies { implementation("io.grpc:grpc-core:last.release") runtimeOnly("io.grpc:grpc-netty:last.release") implementation("io.grpc:grpc-stub:last.release") implementation("io.grpc:grpc-kotlin-stub:last.release") implementation("io.grpc:grpc-protobuf:last.release") implementation("io.grpc:protoc-gen-grpc-kotlin:last.release") implementation("com.google.protobuf:protobuf-java-util:last.release") implementation("com.google.protobuf:protobuf-kotlin:last.release")}添加相关配置用来生成grpc的java代码
import com.google.protobuf.gradle.id......protobuf { protoc { artifact = "com.google.protobuf:protoc:4.27.0" } plugins { id("grpc") { artifact = "io.grpc:protoc-gen-grpc-java:1.64.0" } id("grpckt") { artifact = "io.grpc:protoc-gen-grpc-kotlin:1.3.0:jdk8@jar" } } generateProtoTasks { all().forEach { it.plugins { id("grpc") id("grpckt") } it.builtins { id("kotlin") } } }
sourceSets { main { proto { srcDir("src/main/resources/protos") // 模块下的proto文件夹// include("**/*.proto") 或者这样 } } }
}完整的配置
import com.google.protobuf.gradle.id......
plugins { id("com.google.devtools.ksp") version "xxx.xxx" id("com.google.protobuf") version "xxx.xxx" ......}
......protobuf { protoc { artifact = "com.google.protobuf:protoc:4.27.0" } plugins { id("grpc") { artifact = "io.grpc:protoc-gen-grpc-java:1.64.0" } id("grpckt") { artifact = "io.grpc:protoc-gen-grpc-kotlin:1.3.0:jdk8@jar" } } generateProtoTasks { all().forEach { it.plugins { id("grpc") id("grpckt") } it.builtins { id("kotlin") } } }
sourceSets { main { proto { srcDir("src/main/resources/protos") // 模块下的proto文件夹// include("**/*.proto") 或者这样 } } }
}