all: migrate gradle build to java-library plugin

- Use gradle configuration `api` for dependencies that are part of grpc public api signatures.
- Replace deprecated gradle configurations `compile`, `testCompile`, `runtime` and `testRuntime`.
- With minimal change in dependencies: If we need dep X and Y to compile our code, and if X transitively depends on Y, then our build would still pass even if we only include X as `compile`/`implementation` dependency for our project. Ideally we should include both X and Y explicitly as `implementation` dependency for our project, but in this PR we don't add the missing Y if it is previously missing.
This commit is contained in:
ZHANG Dapeng 2020-05-04 16:44:30 -07:00 committed by GitHub
parent 20f712c14a
commit 0044f8ce56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 119 additions and 106 deletions

View File

@ -31,7 +31,7 @@ for (subproject in rootProject.subprojects) {
} }
dependencies { dependencies {
compile subprojects.minus(project(':grpc-protobuf-lite')) implementation subprojects.minus(project(':grpc-protobuf-lite'))
} }
javadoc { javadoc {

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "com.github.johnrengelman.shadow" id "com.github.johnrengelman.shadow"
@ -13,34 +13,35 @@ sourceCompatibility = 1.7
targetCompatibility = 1.7 targetCompatibility = 1.7
dependencies { dependencies {
compile project(':grpc-auth'), api project(':grpc-core')
project(':grpc-core'), implementation project(':grpc-auth'),
project(':grpc-grpclb'), project(':grpc-grpclb'),
project(':grpc-protobuf'), project(':grpc-protobuf'),
project(':grpc-stub'), project(':grpc-stub'),
libraries.lang, libraries.lang,
libraries.protobuf, libraries.protobuf,
libraries.conscrypt libraries.conscrypt
def nettyDependency = compile project(':grpc-netty') def nettyDependency = implementation project(':grpc-netty')
compile (libraries.google_auth_oauth2_http) { implementation (libraries.google_auth_oauth2_http) {
// prefer our own versions instead of google-auth-oauth2-http's dependency // prefer our own versions instead of google-auth-oauth2-http's dependency
exclude group: 'com.google.guava', module: 'guava' exclude group: 'com.google.guava', module: 'guava'
// we'll always be more up-to-date // we'll always be more up-to-date
exclude group: 'io.grpc', module: 'grpc-context' exclude group: 'io.grpc', module: 'grpc-context'
} }
guavaDependency 'implementation'
compileOnly libraries.javax_annotation compileOnly libraries.javax_annotation
shadow configurations.compile.getDependencies().minus(nettyDependency) shadow configurations.implementation.getDependencies().minus(nettyDependency)
shadow project(path: ':grpc-netty-shaded', configuration: 'shadow') shadow project(path: ':grpc-netty-shaded', configuration: 'shadow')
testCompile project(':grpc-testing'), testImplementation project(':grpc-testing'),
project(':grpc-testing-proto'), project(':grpc-testing-proto'),
libraries.guava, libraries.guava,
libraries.guava_testlib, libraries.guava_testlib,
libraries.junit, libraries.junit,
libraries.mockito, libraries.mockito,
libraries.truth libraries.truth
testRuntime libraries.netty_tcnative, testRuntimeOnly libraries.netty_tcnative,
libraries.netty_epoll libraries.netty_epoll
signature 'org.codehaus.mojo.signature:java17:1.0@signature' signature 'org.codehaus.mojo.signature:java17:1.0@signature'
} }

View File

@ -65,6 +65,7 @@ dependencies {
implementation (libraries.google_auth_oauth2_http) { implementation (libraries.google_auth_oauth2_http) {
exclude group: 'org.apache.httpcomponents' exclude group: 'org.apache.httpcomponents'
} }
censusGrpcMetricDependency 'implementation'
compileOnly libraries.javax_annotation compileOnly libraries.javax_annotation

View File

@ -26,8 +26,8 @@ repositories {
} }
dependencies { dependencies {
implementation project(':grpc-core') api project(':grpc-core')
guavaDependency 'implementation'
testImplementation project('::grpc-okhttp') testImplementation project('::grpc-okhttp')
testImplementation libraries.androidx_test testImplementation libraries.androidx_test
testImplementation libraries.junit testImplementation libraries.junit

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "me.champeau.gradle.jmh" id "me.champeau.gradle.jmh"
@ -11,13 +11,11 @@ description = 'gRPC: API'
evaluationDependsOn(project(':grpc-context').path) evaluationDependsOn(project(':grpc-context').path)
dependencies { dependencies {
compile project(':grpc-context'), api project(':grpc-context'),
libraries.errorprone, libraries.jsr305
libraries.jsr305, guavaDependency 'implementation'
libraries.animalsniffer_annotations
guavaDependency 'compile'
testCompile project(':grpc-context').sourceSets.test.output, testImplementation project(':grpc-context').sourceSets.test.output,
project(':grpc-testing'), project(':grpc-testing'),
project(':grpc-grpclb'), project(':grpc-grpclb'),
libraries.guava_testlib libraries.guava_testlib

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "me.champeau.gradle.japicmp" id "me.champeau.gradle.japicmp"
@ -8,9 +8,10 @@ plugins {
description = "gRPC: Auth" description = "gRPC: Auth"
dependencies { dependencies {
compile project(':grpc-api'), api project(':grpc-api'),
libraries.google_auth_credentials libraries.google_auth_credentials
testCompile project(':grpc-testing'), guavaDependency 'implementation'
testImplementation project(':grpc-testing'),
libraries.google_auth_oauth2_http libraries.google_auth_oauth2_http
signature "org.codehaus.mojo.signature:java17:1.0@signature" signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature" signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"

View File

@ -21,7 +21,7 @@ configurations {
} }
dependencies { dependencies {
compile project(':grpc-core'), implementation project(':grpc-core'),
project(':grpc-netty'), project(':grpc-netty'),
project(':grpc-okhttp'), project(':grpc-okhttp'),
project(':grpc-stub'), project(':grpc-stub'),
@ -34,7 +34,7 @@ dependencies {
compileOnly libraries.javax_annotation compileOnly libraries.javax_annotation
alpnagent libraries.jetty_alpn_agent alpnagent libraries.jetty_alpn_agent
testCompile libraries.junit, testImplementation libraries.junit,
libraries.mockito libraries.mockito
} }

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
} }
@ -8,12 +8,12 @@ description = 'gRPC: Census'
evaluationDependsOn(project(':grpc-api').path) evaluationDependsOn(project(':grpc-api').path)
dependencies { dependencies {
compile project(':grpc-api') api project(':grpc-api')
guavaDependency 'implementation'
censusApiDependency 'implementation'
censusGrpcMetricDependency 'implementation'
censusApiDependency 'compile' testImplementation project(':grpc-api').sourceSets.test.output,
censusGrpcMetricDependency 'compile'
testCompile project(':grpc-api').sourceSets.test.output,
project(':grpc-context').sourceSets.test.output, project(':grpc-context').sourceSets.test.output,
project(':grpc-core').sourceSets.test.output, project(':grpc-core').sourceSets.test.output,
project(':grpc-testing'), project(':grpc-testing'),

View File

@ -126,14 +126,14 @@ model {
} }
configurations { configurations {
testLiteCompile testLiteImplementation
} }
dependencies { dependencies {
testCompile project(':grpc-protobuf'), testImplementation project(':grpc-protobuf'),
project(':grpc-stub'), project(':grpc-stub'),
libraries.javax_annotation libraries.javax_annotation
testLiteCompile project(':grpc-protobuf-lite'), testLiteImplementation project(':grpc-protobuf-lite'),
project(':grpc-stub'), project(':grpc-stub'),
libraries.javax_annotation libraries.javax_annotation
} }

View File

@ -10,7 +10,7 @@ plugins {
description = 'gRPC: Context' description = 'gRPC: Context'
dependencies { dependencies {
testCompile libraries.jsr305, libraries.guava_testlib testImplementation libraries.jsr305, libraries.guava_testlib
signature "org.codehaus.mojo.signature:java17:1.0@signature" signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature" signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
} }

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "me.champeau.gradle.japicmp" id "me.champeau.gradle.japicmp"
@ -13,12 +13,14 @@ evaluationDependsOn(project(':grpc-context').path)
evaluationDependsOn(project(':grpc-api').path) evaluationDependsOn(project(':grpc-api').path)
dependencies { dependencies {
compile project(':grpc-api'), api project(':grpc-api')
libraries.gson, implementation libraries.gson,
libraries.android_annotations, libraries.android_annotations,
libraries.errorprone // prefer our version to perfmark's 2.3.3 libraries.animalsniffer_annotations,
perfmarkDependency 'compile' libraries.errorprone
testCompile project(':grpc-context').sourceSets.test.output, guavaDependency 'implementation'
perfmarkDependency 'implementation'
testImplementation project(':grpc-context').sourceSets.test.output,
project(':grpc-api').sourceSets.test.output, project(':grpc-api').sourceSets.test.output,
project(':grpc-testing'), project(':grpc-testing'),
project(':grpc-grpclb'), project(':grpc-grpclb'),

View File

@ -33,10 +33,11 @@ android {
} }
dependencies { dependencies {
implementation project(':grpc-core') api project(':grpc-core'),
libraries.cronet_api
guavaDependency 'implementation'
testImplementation project(':grpc-testing') testImplementation project(':grpc-testing')
implementation libraries.cronet_api
testImplementation libraries.cronet_embedded testImplementation libraries.cronet_embedded
testImplementation libraries.junit testImplementation libraries.junit

View File

@ -44,16 +44,15 @@ apply plugin: 'com.google.cloud.tools.appengine' // App Engine tasks
dependencies { dependencies {
providedCompile group: 'javax.servlet', name: 'servlet-api', version:'2.5' providedCompile group: 'javax.servlet', name: 'servlet-api', version:'2.5'
compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.59' runtimeOnly 'com.google.appengine:appengine-api-1.0-sdk:1.9.59'
// Deps needed by all gRPC apps in GAE implementation project(':grpc-netty')
compile libraries.google_api_protos implementation project(":grpc-stub")
compile project(":grpc-okhttp") implementation (project(':grpc-interop-testing')) {
compile project(":grpc-protobuf") exclude group: 'io.grpc', module: 'grpc-alts'
compile project(":grpc-stub")
compile (project(":grpc-interop-testing")) {
exclude group: "io.grpc", module: "grpc-netty-shaded"
} }
compile libraries.netty_tcnative implementation libraries.junit
implementation libraries.protobuf
runtimeOnly libraries.netty_tcnative
} }
compileJava { compileJava {

View File

@ -11,17 +11,19 @@ description = "gRPC: GRPCLB LoadBalancer plugin"
evaluationDependsOn(project(':grpc-core').path) evaluationDependsOn(project(':grpc-core').path)
dependencies { dependencies {
compile project(':grpc-core'), implementation project(':grpc-core'),
project(':grpc-protobuf'), project(':grpc-protobuf'),
project(':grpc-stub'), project(':grpc-stub'),
libraries.protobuf libraries.protobuf
compile (libraries.protobuf_util) { implementation (libraries.protobuf_util) {
// prefer our own versions instead of protobuf-util's dependency // prefer our own versions instead of protobuf-util's dependency
exclude group: 'com.google.guava', module: 'guava' exclude group: 'com.google.guava', module: 'guava'
exclude group: 'com.google.errorprone', module: 'error_prone_annotations' exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
} }
guavaDependency 'implementation'
runtimeOnly libraries.errorprone
compileOnly libraries.javax_annotation compileOnly libraries.javax_annotation
testCompile libraries.truth, testImplementation libraries.truth,
project(':grpc-core').sourceSets.test.output project(':grpc-core').sourceSets.test.output
} }

View File

@ -17,7 +17,7 @@ configurations {
evaluationDependsOn(project(':grpc-context').path) evaluationDependsOn(project(':grpc-context').path)
dependencies { dependencies {
compile project(path: ':grpc-alts', configuration: 'shadow'), implementation project(path: ':grpc-alts', configuration: 'shadow'),
project(':grpc-auth'), project(':grpc-auth'),
project(':grpc-census'), project(':grpc-census'),
project(':grpc-core'), project(':grpc-core'),
@ -30,12 +30,13 @@ dependencies {
libraries.google_auth_oauth2_http, libraries.google_auth_oauth2_http,
libraries.junit, libraries.junit,
libraries.truth libraries.truth
censusGrpcMetricDependency 'implementation'
compileOnly libraries.javax_annotation compileOnly libraries.javax_annotation
runtime libraries.opencensus_impl, runtimeOnly libraries.opencensus_impl,
libraries.netty_tcnative, libraries.netty_tcnative,
project(':grpc-grpclb') project(':grpc-grpclb')
xdsRuntime project(path: ':grpc-xds', configuration: 'shadow') xdsRuntime project(path: ':grpc-xds', configuration: 'shadow')
testCompile project(':grpc-context').sourceSets.test.output, testImplementation project(':grpc-context').sourceSets.test.output,
libraries.mockito libraries.mockito
alpnagent libraries.jetty_alpn_agent alpnagent libraries.jetty_alpn_agent
} }

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "me.champeau.gradle.japicmp" id "me.champeau.gradle.japicmp"
@ -16,15 +16,17 @@ configurations {
evaluationDependsOn(project(':grpc-core').path) evaluationDependsOn(project(':grpc-core').path)
dependencies { dependencies {
compile project(':grpc-core'), api project(':grpc-core'),
libraries.netty, libraries.netty
libraries.netty_proxy_handler implementation libraries.netty_proxy_handler
guavaDependency 'implementation'
perfmarkDependency 'implementation'
// Tests depend on base class defined by core module. // Tests depend on base class defined by core module.
testCompile project(':grpc-core').sourceSets.test.output, testImplementation project(':grpc-core').sourceSets.test.output,
project(':grpc-testing'), project(':grpc-testing'),
project(':grpc-testing-proto') project(':grpc-testing-proto')
testRuntime libraries.netty_tcnative, testRuntimeOnly libraries.netty_tcnative,
libraries.conscrypt, libraries.conscrypt,
libraries.netty_epoll libraries.netty_epoll
signature "org.codehaus.mojo.signature:java17:1.0@signature" signature "org.codehaus.mojo.signature:java17:1.0@signature"

View File

@ -10,10 +10,10 @@ description = "gRPC: Netty Shaded"
sourceSets { testShadow {} } sourceSets { testShadow {} }
dependencies { dependencies {
compile project(':grpc-netty') implementation project(':grpc-netty')
runtime libraries.netty_tcnative, runtimeOnly libraries.netty_tcnative,
libraries.netty_epoll libraries.netty_epoll
testShadowCompile files(shadowJar), testShadowImplementation files(shadowJar),
configurations.shadow, configurations.shadow,
project(':grpc-testing-proto'), project(':grpc-testing-proto'),
project(':grpc-testing'), project(':grpc-testing'),

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "me.champeau.gradle.japicmp" id "me.champeau.gradle.japicmp"
@ -11,16 +11,16 @@ description = "gRPC: OkHttp"
evaluationDependsOn(project(':grpc-core').path) evaluationDependsOn(project(':grpc-core').path)
dependencies { dependencies {
compile project(':grpc-core'), api project(':grpc-core')
libraries.okio api (libraries.okhttp) {
compile (libraries.okhttp) {
// prefer our own versions instead of okhttp's dependency // prefer our own versions instead of okhttp's dependency
exclude group: 'com.squareup.okio', module: 'okio' exclude group: 'com.squareup.okio', module: 'okio'
} }
implementation libraries.okio
guavaDependency 'implementation'
perfmarkDependency 'implementation'
// Tests depend on base class defined by core module. // Tests depend on base class defined by core module.
testCompile project(':grpc-core').sourceSets.test.output, testImplementation project(':grpc-core').sourceSets.test.output,
project(':grpc-testing'), project(':grpc-testing'),
project(':grpc-netty') project(':grpc-netty')
signature "org.codehaus.mojo.signature:java17:1.0@signature" signature "org.codehaus.mojo.signature:java17:1.0@signature"

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "com.google.protobuf" id "com.google.protobuf"
@ -10,11 +10,12 @@ plugins {
description = 'gRPC: Protobuf Lite' description = 'gRPC: Protobuf Lite'
dependencies { dependencies {
compile project(':grpc-api'), api project(':grpc-api'),
libraries.protobuf_lite libraries.protobuf_lite
guavaDependency 'compile' implementation libraries.jsr305
guavaDependency 'implementation'
testCompile project(':grpc-core') testImplementation project(':grpc-core')
signature "org.codehaus.mojo.signature:java17:1.0@signature" signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature" signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "com.google.protobuf" id "com.google.protobuf"
@ -10,11 +10,12 @@ plugins {
description = 'gRPC: Protobuf' description = 'gRPC: Protobuf'
dependencies { dependencies {
compile project(':grpc-api'), api project(':grpc-api'),
libraries.jsr305,
libraries.protobuf libraries.protobuf
guavaDependency 'compile' guavaDependency 'implementation'
compile (libraries.google_api_protos) { api (libraries.google_api_protos) {
// 'com.google.api:api-common' transitively depends on auto-value, which breaks our // 'com.google.api:api-common' transitively depends on auto-value, which breaks our
// annotations. // annotations.
exclude group: 'com.google.api', module: 'api-common' exclude group: 'com.google.api', module: 'api-common'
@ -22,7 +23,7 @@ dependencies {
exclude group: 'com.google.protobuf', module: 'protobuf-java' exclude group: 'com.google.protobuf', module: 'protobuf-java'
} }
compile (project(':grpc-protobuf-lite')) { api (project(':grpc-protobuf-lite')) {
exclude group: 'com.google.protobuf', module: 'protobuf-javalite' exclude group: 'com.google.protobuf', module: 'protobuf-javalite'
} }

View File

@ -13,7 +13,7 @@ dependencies {
project(':grpc-protobuf'), project(':grpc-protobuf'),
project(':grpc-stub') project(':grpc-stub')
compileOnly libraries.javax_annotation compileOnly libraries.javax_annotation
testCompile libraries.truth, testImplementation libraries.truth,
project(':grpc-testing'), project(':grpc-testing'),
project(':grpc-testing-proto'), project(':grpc-testing-proto'),
project(':grpc-core').sourceSets.test.output // for FakeClock project(':grpc-core').sourceSets.test.output // for FakeClock

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "com.google.protobuf" id "com.google.protobuf"
@ -19,17 +19,19 @@ description = "gRPC: Services"
evaluationDependsOn(project(':grpc-core').path) evaluationDependsOn(project(':grpc-core').path)
dependencies { dependencies {
compile project(':grpc-protobuf'), api project(':grpc-protobuf'),
project(':grpc-stub'), project(':grpc-stub'),
project(':grpc-core') project(':grpc-core')
compile (libraries.protobuf_util) { implementation (libraries.protobuf_util) {
// prefer our own versions instead of protobuf-util's dependency // prefer our own versions instead of protobuf-util's dependency
exclude group: 'com.google.guava', module: 'guava' exclude group: 'com.google.guava', module: 'guava'
exclude group: 'com.google.errorprone', module: 'error_prone_annotations' exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
} }
guavaDependency 'implementation'
runtimeOnly libraries.errorprone
compileOnly libraries.javax_annotation compileOnly libraries.javax_annotation
testCompile project(':grpc-testing'), testImplementation project(':grpc-testing'),
libraries.netty_epoll, // for DomainSocketAddress libraries.netty_epoll, // for DomainSocketAddress
project(':grpc-core').sourceSets.test.output // for FakeClock project(':grpc-core').sourceSets.test.output // for FakeClock
testCompileOnly libraries.javax_annotation testCompileOnly libraries.javax_annotation

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "me.champeau.gradle.japicmp" id "me.champeau.gradle.japicmp"
@ -8,8 +8,9 @@ plugins {
description = "gRPC: Stub" description = "gRPC: Stub"
dependencies { dependencies {
compile project(':grpc-api') api project(':grpc-api')
testCompile libraries.truth, guavaDependency 'api'
testImplementation libraries.truth,
project(':grpc-testing') project(':grpc-testing')
signature "org.codehaus.mojo.signature:java17:1.0@signature" signature "org.codehaus.mojo.signature:java17:1.0@signature"
signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature" signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "com.google.protobuf" id "com.google.protobuf"
@ -8,10 +8,10 @@ plugins {
description = "gRPC: Testing Protos" description = "gRPC: Testing Protos"
dependencies { dependencies {
compile project(':grpc-protobuf'), api project(':grpc-protobuf'),
project(':grpc-stub') project(':grpc-stub')
compileOnly libraries.javax_annotation compileOnly libraries.javax_annotation
testCompile libraries.truth testImplementation libraries.truth
testRuntime libraries.javax_annotation testRuntime libraries.javax_annotation
} }

View File

@ -1,5 +1,5 @@
plugins { plugins {
id "java" id "java-library"
id "maven-publish" id "maven-publish"
id "me.champeau.gradle.japicmp" id "me.champeau.gradle.japicmp"
@ -10,18 +10,18 @@ description = "gRPC: Testing"
evaluationDependsOn(project(':grpc-core').path) evaluationDependsOn(project(':grpc-core').path)
dependencies { dependencies {
compile project(':grpc-core'), api project(':grpc-core'),
project(':grpc-stub'), project(':grpc-stub'),
libraries.junit libraries.junit
censusApiDependency 'compile' censusApiDependency 'implementation'
testCompile (libraries.mockito) { testImplementation (libraries.mockito) {
// prefer our own versions instead of mockito's dependency // prefer our own versions instead of mockito's dependency
exclude group: 'org.hamcrest', module: 'hamcrest-core' exclude group: 'org.hamcrest', module: 'hamcrest-core'
} }
testCompile project(':grpc-testing-proto'), testImplementation project(':grpc-testing-proto'),
project(':grpc-core').sourceSets.test.output project(':grpc-core').sourceSets.test.output
} }

View File

@ -19,42 +19,42 @@ description = "gRPC: XDS plugin"
evaluationDependsOn(project(':grpc-core').path) evaluationDependsOn(project(':grpc-core').path)
dependencies { dependencies {
compile project(':grpc-protobuf'), implementation project(':grpc-protobuf'),
project(':grpc-stub'), project(':grpc-stub'),
project(':grpc-core'), project(':grpc-core'),
project(':grpc-services'), project(':grpc-services'),
project(path: ':grpc-alts', configuration: 'shadow'), project(path: ':grpc-alts', configuration: 'shadow'),
libraries.gson libraries.gson
def nettyDependency = compile project(':grpc-netty') def nettyDependency = implementation project(':grpc-netty')
compile (libraries.opencensus_proto) { implementation (libraries.opencensus_proto) {
// prefer our own versions instead of opencensus_proto's // prefer our own versions instead of opencensus_proto's
exclude group: 'com.google.protobuf', module: 'protobuf-java' exclude group: 'com.google.protobuf', module: 'protobuf-java'
exclude group: 'io.grpc', module: 'grpc-protobuf' exclude group: 'io.grpc', module: 'grpc-protobuf'
exclude group: 'io.grpc', module: 'grpc-stub' exclude group: 'io.grpc', module: 'grpc-stub'
} }
compile (libraries.protobuf_util) { implementation (libraries.protobuf_util) {
// prefer our own versions instead of protobuf-util's dependency // prefer our own versions instead of protobuf-util's dependency
exclude group: 'com.google.guava', module: 'guava' exclude group: 'com.google.guava', module: 'guava'
exclude group: 'com.google.errorprone', module: 'error_prone_annotations' exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
} }
testCompile project(':grpc-core').sourceSets.test.output testImplementation project(':grpc-core').sourceSets.test.output
compileOnly libraries.javax_annotation, compileOnly libraries.javax_annotation,
// At runtime use the epoll included in grpc-netty-shaded // At runtime use the epoll included in grpc-netty-shaded
libraries.netty_epoll libraries.netty_epoll
testCompile project(':grpc-testing'), testImplementation project(':grpc-testing'),
project(':grpc-testing-proto'), project(':grpc-testing-proto'),
libraries.guava_testlib, libraries.guava_testlib,
libraries.netty_epoll libraries.netty_epoll
shadow configurations.compile.getDependencies().minus([nettyDependency]) shadow configurations.implementation.getDependencies().minus([nettyDependency])
shadow project(path: ':grpc-netty-shaded', configuration: 'shadow') shadow project(path: ':grpc-netty-shaded', configuration: 'shadow')
signature "org.codehaus.mojo.signature:java17:1.0@signature" signature "org.codehaus.mojo.signature:java17:1.0@signature"
testRuntime libraries.netty_tcnative testRuntimeOnly libraries.netty_tcnative
} }
sourceSets { sourceSets {