grpc-java/api/build.gradle

84 lines
2.3 KiB
Groovy

plugins {
id "java-library"
id "java-test-fixtures"
id "maven-publish"
id "me.champeau.jmh"
id "ru.vyarus.animalsniffer"
}
description = 'gRPC: API'
sourceSets {
context
main {
output.classesDirs.from(sourceSets.context.output.classesDirs)
}
}
tasks.named("compileContextJava").configure {
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_20)) {
println("!!! Javac does not support generating Java 7 bytecode. Do not use for release builds !!!")
} else if (JavaVersion.current().isJava9Compatible()) {
options.release = 7
} else {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
}
tasks.named("jar").configure {
manifest {
attributes('Automatic-Module-Name': 'io.grpc')
}
}
dependencies {
compileOnly sourceSets.context.output
api libraries.jsr305,
libraries.errorprone.annotations
implementation libraries.guava
testFixturesApi libraries.truth
testFixturesImplementation libraries.jsr305
testFixturesImplementation libraries.guava,
libraries.junit,
libraries.mockito.core
testImplementation project(':grpc-core')
testImplementation project(':grpc-testing')
testImplementation libraries.guava.testlib
testImplementation libraries.truth
signature (libraries.signature.java) {
artifact {
extension = "signature"
}
}
signature (libraries.signature.android) {
artifact {
extension = "signature"
}
}
}
animalsniffer {
annotation = 'io.grpc.IgnoreJRERequirement'
}
tasks.named("javadoc").configure {
source sourceSets.context.allSource
// We want io.grpc.Internal, but not io.grpc.Internal*
exclude 'io/grpc/*MetricInstrument.java'
exclude 'io/grpc/*MetricInstrumentRegistry.java'
exclude 'io/grpc/Internal?*.java'
exclude 'io/grpc/MetricRecorder.java'
exclude 'io/grpc/MetricSink.java'
}
tasks.named("sourcesJar").configure {
from sourceSets.context.allSource
}
components.java.withVariantsFromConfiguration(configurations.testFixturesApiElements) { skip() }
components.java.withVariantsFromConfiguration(configurations.testFixturesRuntimeElements) { skip() }