pluginManagement { plugins { // https://developer.android.com/build/releases/gradle-plugin // 8+ has many changes: https://github.com/grpc/grpc-java/issues/10152 id "com.android.application" version "7.4.1" id "com.android.library" version "7.4.1" // https://github.com/kt3k/coveralls-gradle-plugin/tags id "com.github.kt3k.coveralls" version "2.12.2" // https://github.com/GoogleCloudPlatform/appengine-plugins/releases id "com.google.cloud.tools.appengine" version "2.8.0" // https://github.com/GoogleContainerTools/jib/blob/master/jib-gradle-plugin/CHANGELOG.md id "com.google.cloud.tools.jib" version "3.4.4" // https://github.com/google/osdetector-gradle-plugin/tags id "com.google.osdetector" version "1.7.3" // https://github.com/google/protobuf-gradle-plugin/releases id "com.google.protobuf" version "0.9.4" // https://github.com/GradleUp/shadow/releases // 8.3.2+ requires Java 11+ // 8.3.1 breaks apache imports for netty/shaded, fixed in 8.3.2 id "com.gradleup.shadow" version "8.3.0" // https://github.com/melix/japicmp-gradle-plugin/blob/master/CHANGELOG.txt id "me.champeau.gradle.japicmp" version "0.4.2" // https://github.com/melix/jmh-gradle-plugin/releases id "me.champeau.jmh" version "0.7.2" // https://github.com/tbroyer/gradle-errorprone-plugin/releases id "net.ltgt.errorprone" version "4.1.0" // https://github.com/xvik/gradle-animalsniffer-plugin/releases id "ru.vyarus.animalsniffer" version "1.7.1" } resolutionStrategy { eachPlugin { if (target.id.namespace == "com.android") { useModule("com.android.tools.build:gradle:${target.version}") } if (requested.id.id.startsWith('com.google.cloud.tools.appengine')) { useModule("com.google.cloud.tools:appengine-gradle-plugin:${target.version}") } } } repositories { gradlePluginPortal() google() } } rootProject.name = "grpc" include ":grpc-api" include ":grpc-core" include ":grpc-context" include ":grpc-stub" include ":grpc-census" include ":grpc-auth" include ":grpc-okhttp" include ":grpc-protobuf" include ":grpc-protobuf-lite" include ":grpc-netty" include ":grpc-netty-shaded" include ":grpc-googleapis" include ":grpc-grpclb" include ":grpc-testing" include ":grpc-testing-proto" include ":grpc-interop-testing" include ":grpc-gae-interop-testing-jdk8" include ":grpc-all" include ":grpc-alts" include ":grpc-benchmarks" include ":grpc-services" include ":grpc-servlet" include ":grpc-servlet-jakarta" include ":grpc-s2a" include ":grpc-xds" include ":grpc-bom" include ":grpc-rls" include ":grpc-authz" include ":grpc-gcp-csm-observability" include ":grpc-gcp-observability" include ":grpc-gcp-observability:interop" include ":grpc-istio-interop-testing" include ":grpc-inprocess" include ":grpc-util" include ":grpc-opentelemetry" include ":grpc-context-override-opentelemetry" project(':grpc-api').projectDir = "$rootDir/api" as File project(':grpc-core').projectDir = "$rootDir/core" as File project(':grpc-context').projectDir = "$rootDir/context" as File project(':grpc-stub').projectDir = "$rootDir/stub" as File project(':grpc-census').projectDir = "$rootDir/census" as File project(':grpc-auth').projectDir = "$rootDir/auth" as File project(':grpc-okhttp').projectDir = "$rootDir/okhttp" as File project(':grpc-protobuf').projectDir = "$rootDir/protobuf" as File project(':grpc-protobuf-lite').projectDir = "$rootDir/protobuf-lite" as File project(':grpc-netty').projectDir = "$rootDir/netty" as File project(':grpc-netty-shaded').projectDir = "$rootDir/netty/shaded" as File project(':grpc-googleapis').projectDir = "$rootDir/googleapis" as File project(':grpc-grpclb').projectDir = "$rootDir/grpclb" as File project(':grpc-testing').projectDir = "$rootDir/testing" as File project(':grpc-testing-proto').projectDir = "$rootDir/testing-proto" as File project(':grpc-interop-testing').projectDir = "$rootDir/interop-testing" as File project(':grpc-gae-interop-testing-jdk8').projectDir = "$rootDir/gae-interop-testing/gae-jdk8" as File project(':grpc-all').projectDir = "$rootDir/all" as File project(':grpc-alts').projectDir = "$rootDir/alts" as File project(':grpc-benchmarks').projectDir = "$rootDir/benchmarks" as File project(':grpc-services').projectDir = "$rootDir/services" as File project(':grpc-servlet').projectDir = "$rootDir/servlet" as File project(':grpc-servlet-jakarta').projectDir = "$rootDir/servlet/jakarta" as File project(':grpc-s2a').projectDir = "$rootDir/s2a" as File project(':grpc-xds').projectDir = "$rootDir/xds" as File project(':grpc-bom').projectDir = "$rootDir/bom" as File project(':grpc-rls').projectDir = "$rootDir/rls" as File project(':grpc-authz').projectDir = "$rootDir/authz" as File project(':grpc-gcp-csm-observability').projectDir = "$rootDir/gcp-csm-observability" as File project(':grpc-gcp-observability').projectDir = "$rootDir/gcp-observability" as File project(':grpc-gcp-observability:interop').projectDir = "$rootDir/gcp-observability/interop" as File project(':grpc-istio-interop-testing').projectDir = "$rootDir/istio-interop-testing" as File project(':grpc-inprocess').projectDir = "$rootDir/inprocess" as File project(':grpc-util').projectDir = "$rootDir/util" as File project(':grpc-opentelemetry').projectDir = "$rootDir/opentelemetry" as File project(':grpc-context-override-opentelemetry').projectDir = "$rootDir/contextstorage" as File if (settings.hasProperty('skipCodegen') && skipCodegen.toBoolean()) { println '*** Skipping the build of codegen and compilation of proto files because skipCodegen=true' } else { include ":grpc-compiler" project(':grpc-compiler').projectDir = "$rootDir/compiler" as File } if (settings.hasProperty('skipAndroid') && skipAndroid.toBoolean()) { println ' * Skipping the build of Android projects because skipAndroid=true' } else { println '*** Android SDK is required. To avoid building Android projects, set -PskipAndroid=true' include ":grpc-cronet" project(':grpc-cronet').projectDir = "$rootDir/cronet" as File include ":grpc-android" project(':grpc-android').projectDir = "$rootDir/android" as File include ":grpc-android-interop-testing" project(':grpc-android-interop-testing').projectDir = "$rootDir/android-interop-testing" as File include ":grpc-binder" project(':grpc-binder').projectDir = "$rootDir/binder" as File }