1plugins { 2 id "java-library" 3 id "maven-publish" 4 5 id "com.github.johnrengelman.shadow" 6 id "com.google.protobuf" 7 id "ru.vyarus.animalsniffer" 8} 9 10description = "gRPC: Authorization" 11 12dependencies { 13 implementation project(':grpc-protobuf'), 14 project(':grpc-core'), 15 libraries.guava.jre // JRE required by transitive protobuf-java-util 16 17 annotationProcessor libraries.auto.value 18 compileOnly libraries.javax.annotation 19 20 testImplementation project(':grpc-testing'), 21 project(':grpc-testing-proto'), 22 testFixtures(project(':grpc-core')) 23 testImplementation (libraries.guava.testlib) { 24 exclude group: 'junit', module: 'junit' 25 } 26 27 def xdsDependency = implementation project(':grpc-xds') 28 shadow configurations.implementation.getDependencies().minus([xdsDependency]) 29 shadow project(path: ':grpc-xds', configuration: 'shadow') 30 31 signature libraries.signature.java 32} 33 34tasks.named("jar").configure { 35 archiveClassifier = 'original' 36} 37 38tasks.named("shadowJar").configure { 39 archiveClassifier = null 40 dependencies { 41 exclude(dependency {true}) 42 } 43 relocate 'io.grpc.xds', 'io.grpc.xds.shaded.io.grpc.xds' 44 relocate 'udpa.annotations', 'io.grpc.xds.shaded.udpa.annotations' 45 relocate 'com.github.udpa', 'io.grpc.xds.shaded.com.github.udpa' 46 relocate 'envoy.annotations', 'io.grpc.xds.shaded.envoy.annotations' 47 relocate 'io.envoyproxy', 'io.grpc.xds.shaded.io.envoyproxy' 48 relocate 'com.google.api.expr', 'io.grpc.xds.shaded.com.google.api.expr' 49} 50 51tasks.named("compileJava").configure { 52 it.options.compilerArgs += [ 53 "-Xlint:-processing", 54 ] 55} 56 57publishing { 58 publications { 59 maven(MavenPublication) { 60 // We want this to throw an exception if it isn't working 61 def originalJar = artifacts.find { dep -> dep.classifier == 'original'} 62 artifacts.remove(originalJar) 63 64 pom.withXml { 65 def dependenciesNode = new Node(null, 'dependencies') 66 project.configurations.shadow.allDependencies.each { dep -> 67 def dependencyNode = dependenciesNode.appendNode('dependency') 68 dependencyNode.appendNode('groupId', dep.group) 69 dependencyNode.appendNode('artifactId', dep.name) 70 dependencyNode.appendNode('version', dep.version) 71 dependencyNode.appendNode('scope', 'compile') 72 } 73 asNode().dependencies[0].replaceNode(dependenciesNode) 74 } 75 } 76 } 77} 78 79tasks.named("publishMavenPublicationToMavenRepository").configure { 80 enabled = false 81} 82