1plugins { 2 id "java-library" 3 id "maven-publish" 4 5 id "com.github.kt3k.coveralls" 6} 7 8description = "gRPC: All" 9 10def subprojects = [ 11 project(':grpc-api'), 12 project(':grpc-auth'), 13 project(':grpc-context'), 14 project(':grpc-core'), 15 project(':grpc-grpclb'), 16 project(':grpc-netty'), 17 project(':grpc-okhttp'), 18 project(':grpc-protobuf'), 19 project(':grpc-protobuf-lite'), 20 project(':grpc-rls'), 21 project(':grpc-services'), 22 project(':grpc-servlet'), 23 project(':grpc-servlet-jakarta'), 24 project(':grpc-stub'), 25 project(':grpc-testing'), 26 project(':grpc-xds'), 27] 28 29for (subproject in subprojects) { 30 if (subproject == project) { 31 continue 32 } 33 evaluationDependsOn(subproject.path) 34} 35evaluationDependsOn(':grpc-interop-testing') 36 37dependencies { 38 api subprojects.minus([project(':grpc-protobuf-lite')]) 39 implementation libraries.guava.jre // JRE required by transitive protobuf-java-util 40} 41 42tasks.named("javadoc").configure { 43 classpath = files(subprojects.collect { subproject -> 44 subproject.javadoc.classpath 45 }) 46 for (subproject in subprojects) { 47 if (subproject == project) { 48 continue; 49 } 50 source subproject.javadoc.source 51 options.links subproject.javadoc.options.links.toArray(new String[0]) 52 } 53} 54 55tasks.named("jacocoTestReport").configure { 56 dependsOn(subprojects.jacocoTestReport.dependsOn) 57 dependsOn(project(':grpc-interop-testing').jacocoTestReport.dependsOn) 58 executionData.from files(subprojects.jacocoTestReport.executionData) 59 .plus(project(':grpc-interop-testing').jacocoTestReport.executionData) 60 .filter { f -> f.exists() } 61 reports { 62 xml.required = true 63 html.required = true 64 } 65 66 subprojects.each { subproject -> 67 additionalSourceDirs.from(subproject.jacocoTestReport.additionalSourceDirs) 68 sourceDirectories.from(subproject.jacocoTestReport.sourceDirectories) 69 classDirectories.from(subproject.jacocoTestReport.classDirectories) 70 } 71} 72 73coveralls { 74 sourceDirs = subprojects.sourceSets.main.allSource.srcDirs.flatten() 75} 76 77tasks.named("coveralls").configure { dependsOn tasks.named("jacocoTestReport") } 78