Riku
12/29/2019, 7:43 PMapply plugin: 'kotlin'
apply plugin: 'com.google.protobuf'
apply plugin: 'idea'
dependencies {
// For jdk 9+ you need to include javax.annotations
// The reason is outlined in this grpc issue
// <https://github.com/grpc/grpc-java/issues/4725>
compileOnly "javax.annotation:javax.annotation-api:1.2"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
implementation "com.github.marcoferrer.krotoplus:kroto-plus-coroutines:$krotoplus_version"
implementation "com.github.marcoferrer.krotoplus:kroto-plus-test:${krotoplus_version}"
implementation "com.github.marcoferrer.krotoplus:kroto-plus-message:${krotoplus_version}"
implementation "com.google.protobuf:protobuf-java:$protobuf_version"
implementation "io.grpc:grpc-protobuf:$grpc_version"
implementation "io.grpc:grpc-stub:$grpc_version"
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:$protobuf_version"
}
//noinspection GroovyAssignabilityCheck
plugins {
grpc { artifact = "io.grpc:protoc-gen-grpc-java:$grpc_version" }
kroto {
artifact = "com.github.marcoferrer.krotoplus:protoc-gen-grpc-coroutines:$krotoplus_version:jvm8@jar"
}
}
generateProtoTasks {
def kroto_config = file("krotoPlusConfig.yaml")
all().each{ task ->
// Adding the config file to the task inputs lets UP-TO-DATE checks
// include changes to configuration
task.inputs.files kroto_config
task.plugins {
grpc { outputSubDir = "java" }
kroto {
outputSubDir = "java"
option "ConfigPath=$kroto_config"
}
}
}
}
}