description = "gRPC: GRPCLB LoadBalancer plugin"

buildscript {
    repositories {
        maven { // The google mirror is less flaky than mavenCentral()
            url "https://maven-central.storage-download.googleapis.com/repos/central/data/" }
    }
    dependencies { classpath libraries.protobuf_plugin }
}

dependencies {
    compile project(':grpc-core'),
            project(':grpc-protobuf'),
            project(':grpc-stub'),
            libraries.protobuf
    compile (libraries.protobuf_util) {
        // prefer 2.3.2 from libraries instead of 2.1.3 from guava
        exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
        // prefer 1.17 from libraries instead of 1.14 from guava
        exclude group: 'org.codehaus.mojo', module: 'animal-sniffer-annotations'
    }
    compileOnly libraries.javax_annotation
    testCompile libraries.truth,
            project(':grpc-core').sourceSets.test.output
}

configureProtoCompilation()
