Android gRPC使用记录
1、在gradle.properties定义引用版本
代码语言:javascript
代码运行次数:0运行
复制
krotoplus_version=0.6.1
protobuf_version=3.25.1
coroutines_version=1.3.2
grpc_version=1.60.0
grpc_kotlin_version=1.4.1
2、build.gradle.kts编译
代码语言:javascript
代码运行次数:0运行
复制
import com.google.protobuf.gradle.proto
plugins {
...
//增加.proto文件编译插件
id("com.google.protobuf") version "0.9.1" // 添加protobuf
...
}
val coroutinesVersion = project.property("coroutines_version")
val krotoplusVersion = project.property("krotoplus_version")
val protobufVersion = project.property("protobuf_version")
val grpcVersion = project.property("grpc_version")
val grpcKotlinVersion = project.property("grpc_kotlin_version")
android {
...
sourceSets {
named("main") {
proto {
srcDir("src/main/proto")
}
}
}
...
}
dependencies {
...
//gRPC
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
implementation("com.google.protobuf:protobuf-java:$protobufVersion")
implementation("com.google.protobuf:protobuf-java-util:$protobufVersion")
implementation("com.google.protobuf:protobuf-kotlin:$protobufVersion")
implementation("io.grpc:grpc-protobuf:$grpcVersion")
implementation("io.grpc:grpc-stub:$grpcVersion")
implementation("io.grpc:grpc-netty:$grpcVersion")
implementation("io.grpc:grpc-kotlin-stub:$grpcKotlinVersion")
...
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:$protobufVersion"
}
plugins {
create("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:$grpcVersion"
}
create("grpckt") {
artifact = "io.grpc:protoc-gen-grpc-kotlin:${grpcKotlinVersion}:jdk8@jar"
}
create("java"){
artifact = "io.grpc:protoc-gen-grpc-java:$grpcVersion"
}
}
generateProtoTasks {
all().forEach {
it.plugins {
create("grpc"){
option("lite")
}
create("grpckt"){
option("lite")
}
create("java"){
option("lite")
}
}
it.builtins {
create("kotlin"){
option("lite")
}
}
}
}
}
发布评论