opentelemetry-java/sdk/common/build.gradle

100 lines
2.3 KiB
Groovy

plugins {
id "java"
id "maven-publish"
id "ru.vyarus.animalsniffer"
}
description = 'OpenTelemetry SDK Common'
ext.moduleName = "io.opentelemetry.sdk.common"
ext.propertiesDir = "build/generated/properties/io/opentelemetry/sdk/common"
dependencies {
api project(':opentelemetry-api')
annotationProcessor libraries.auto_value
testAnnotationProcessor libraries.auto_value
testCompileOnly libraries.auto_value_annotation
testImplementation project(':opentelemetry-sdk-testing')
testImplementation libraries.junit_pioneer,
libraries.guava_testlib
signature libraries.android_signature
}
sourceSets {
main {
output.dir("build/generated/properties", builtBy: 'generateVersionResource')
}
}
animalsniffer {
// Don't check sourceSets.jmh and sourceSets.test
sourceSets = [
sourceSets.main
]
}
configurations {
testClasses {
extendsFrom(testRuntime)
}
}
task testJar(type: Jar) {
archiveClassifier.set("test")
from sourceSets.test.output
}
// add the jar generated by the testJar task to the testClasses dependency
artifacts {
testClasses testJar
}
task generateVersionResource {
doLast {
def folder = file(propertiesDir)
folder.mkdirs()
def propertiesFile = new File(folder.getAbsolutePath(), "version.properties")
propertiesFile.write("sdk.version=${project.version}")
}
}
def mrJarVersions = [9]
mrJarVersions.each { version->
sourceSets {
"java${version}" {
java {
srcDirs = ["src/main/java${version}"]
}
}
}
"compileJava${version}Java" {
sourceCompatibility = version
targetCompatibility = version
options.release = version
}
configurations."java${version}Implementation".extendsFrom configurations.implementation
dependencies {
// Common to reference classes in main sourceset from Java 9 one (e.g., to return a common interface)
"java${version}Implementation" files(sourceSets.main.output.classesDirs) { builtBy compileJava }
}
}
tasks.withType(Jar) {
mrJarVersions.each { version->
into("META-INF/versions/${version}") {
from sourceSets."java${version}".output
}
}
manifest.attributes(
'Multi-Release': 'true'
)
}