87 lines
2.4 KiB
Groovy
87 lines
2.4 KiB
Groovy
plugins {
|
|
id "com.github.johnrengelman.shadow" version "4.0.1"
|
|
}
|
|
|
|
description = 'dd-java-agent'
|
|
|
|
apply from: "${rootDir}/gradle/java.gradle"
|
|
apply from: "${rootDir}/gradle/publish.gradle"
|
|
|
|
jacocoTestReport.dependsOn ':dd-java-agent-ittests:test'
|
|
|
|
/*
|
|
* Include subproject's shadowJar in the dd-java-agent jar.
|
|
* Note jarname must end in .zip, or its classes will be on the classpath of
|
|
* the dd-java-agent jar.
|
|
*/
|
|
|
|
def includeShadowJar(subproject, jarname) {
|
|
def agent_project = project
|
|
subproject.afterEvaluate {
|
|
agent_project.processResources {
|
|
from(subproject.tasks.shadowJar)
|
|
rename {
|
|
it.equals(subproject.shadowJar.archivePath.getName()) ?
|
|
jarname :
|
|
it
|
|
}
|
|
}
|
|
agent_project.processResources.dependsOn subproject.tasks.shadowJar
|
|
subproject.shadowJar {
|
|
classifier null
|
|
|
|
mergeServiceFiles()
|
|
|
|
exclude '**/module-info.class'
|
|
|
|
dependencies {
|
|
exclude(dependency("org.projectlombok:lombok:$versions.lombok"))
|
|
}
|
|
|
|
// Prevents conflict with other SLF4J instances. Important for premain.
|
|
relocate 'org.slf4j', 'datadog.slf4j'
|
|
// rewrite dependencies calling Logger.getLogger
|
|
relocate 'java.util.logging.Logger', 'datadog.trace.bootstrap.PatchLogger'
|
|
|
|
if (!project.hasProperty("disableShadowRelocate") || !disableShadowRelocate) {
|
|
// shadow OT impl to prevent casts to implementation
|
|
relocate 'datadog.trace.common', 'datadog.trace.agent.common'
|
|
relocate 'datadog.opentracing', 'datadog.trace.agent.ot'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
includeShadowJar(project(':dd-java-agent:agent-bootstrap'), 'agent-bootstrap.jar.zip')
|
|
includeShadowJar(project(':dd-java-agent:instrumentation'), 'agent-tooling-and-instrumentation.jar.zip')
|
|
includeShadowJar(project(':dd-java-agent:agent-jmxfetch'), 'agent-jmxfetch.jar.zip')
|
|
|
|
jar {
|
|
classifier = 'unbundled'
|
|
|
|
manifest {
|
|
attributes(
|
|
"Main-Class": "datadog.trace.agent.TracingAgent",
|
|
"Agent-Class": "datadog.trace.agent.TracingAgent",
|
|
"Premain-Class": "datadog.trace.agent.TracingAgent",
|
|
"Can-Redefine-Classes": true,
|
|
"Can-Retransform-Classes": true,
|
|
)
|
|
}
|
|
}
|
|
|
|
shadowJar {
|
|
classifier null
|
|
|
|
mergeServiceFiles()
|
|
|
|
dependencies {
|
|
exclude(dependency("org.projectlombok:lombok:$versions.lombok"))
|
|
}
|
|
}
|
|
|
|
// We don't want bundled dependencies to show up in the pom.
|
|
modifyPom {
|
|
dependencies.removeAll { true }
|
|
}
|