description = 'gRPC: Protobuf'

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'),
            libraries.protobuf
    compile (libraries.guava) {
        // prefer 2.2.0 from libraries instead of 2.1.3
        exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
        // prefer 3.0.2 from libraries instead of 3.0.1
        exclude group: 'com.google.code.findbugs', module: 'jsr305'
        // prefer 1.17 from libraries instead of 1.14
        exclude group: 'org.codehaus.mojo', module: 'animal-sniffer-annotations'
    }

    compile (libraries.google_api_protos) {
        // 'com.google.api:api-common' transitively depends on auto-value, which breaks our
        // annotations.
        exclude group: 'com.google.api', module: 'api-common'
        // Prefer our more up-to-date protobuf over 3.2.0
        exclude group: 'com.google.protobuf', module: 'protobuf-java'
    }

    compile (project(':grpc-protobuf-lite')) {
        exclude group: 'com.google.protobuf', module: 'protobuf-lite'
    }

    signature "org.codehaus.mojo.signature:java17:1.0@signature"
}

javadoc.options.links 'https://developers.google.com/protocol-buffers/docs/reference/java/'
