100 lines
2.3 KiB
Groovy
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'
|
|
)
|
|
}
|