buildscript { repositories { jcenter() } dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' } } apply plugin: 'com.github.johnrengelman.shadow' description = "gRPC: ALTS" sourceCompatibility = 1.7 targetCompatibility = 1.7 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-auth'), project(':grpc-core'), project(':grpc-netty'), project(':grpc-protobuf'), project(':grpc-stub'), libraries.lang, libraries.protobuf compile (libraries.google_auth_oauth2_http) { // prefer 26.0-android from libraries instead of 25.1-android exclude group: 'com.google.guava', module: 'guava' // prefer 0.19.2 from libraries instead of 0.18.0 exclude group: 'io.opencensus', module: 'opencensus-api' } compileOnly libraries.javax_annotation runtime project(':grpc-grpclb') testCompile project(':grpc-testing'), project(':grpc-testing-proto'), libraries.guava, libraries.guava_testlib, libraries.junit, libraries.mockito, libraries.truth testRuntime libraries.netty_tcnative, libraries.conscrypt signature 'org.codehaus.mojo.signature:java17:1.0@signature' } configureProtoCompilation() import net.ltgt.gradle.errorprone.CheckSeverity [compileJava, compileTestJava].each() { // protobuf calls valueof. Will be fixed in next release (google/protobuf#4046) it.options.compilerArgs += [ "-Xlint:-deprecation" ] // ALTS returns a lot of futures that we mostly don't care about. it.options.errorprone.check("FutureReturnValueIgnored", CheckSeverity.OFF) } javadoc { exclude 'io/grpc/alts/internal/**' } jar { // Must use a different classifier to avoid conflicting with shadowJar classifier = 'original' } // We want to use grpc-netty-shaded instead of grpc-netty. But we also want our // source to work with Bazel, so we rewrite the code as part of the build. shadowJar { classifier = null dependencies { exclude(dependency {true}) } relocate 'io.grpc.netty', 'io.grpc.netty.shaded.io.grpc.netty' relocate 'io.netty', 'io.grpc.netty.shaded.io.netty' } publishing { publications { maven(MavenPublication) { // use shadowJar and remove the original Jar artifact shadowJar def originalJar = artifacts.find { dep -> dep.classifier == 'original'} artifacts.remove(originalJar) pom.withXml { // Swap our dependency to grpc-netty-shaded. Projects depending on this via // project(':grpc-alts') will still be using the non-shaded form. asNode().dependencies.'*'.findAll() { dep -> dep.artifactId.text() == 'grpc-netty' }.each() { netty -> netty.artifactId*.value = 'grpc-netty-shaded' netty.version*.value = "[" + netty.version.text() + "]" } } } } }