```apply plugin: 'kotlin' apply plugin: 'com.googl...
# kroto-plus
r
Copy code
apply 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"
                }
            }
        }
    }
}