-
Notifications
You must be signed in to change notification settings - Fork 15
/
build.gradle.kts
115 lines (93 loc) · 2.86 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
plugins {
com.teamscale.`java-convention`
alias(libs.plugins.markdownToPdf)
application
// we don't want to cause conflicts between our dependencies and the target application
// since the agent will be loaded with the same class loader as the profiled application
// so we use the shadow plugin to relocate our dependencies
com.teamscale.`shadow-convention`
com.teamscale.coverage
com.teamscale.publish
com.teamscale.`logger-patch`
}
evaluationDependsOn(":installer")
publishAs {
artifactId.set("teamscale-jacoco-agent")
readableName.set("Teamscale JaCoCo Agent")
description.set("JVM profiler that simplifies various aspects around recording and uploading test coverage")
}
val appVersion = rootProject.extra["appVersion"].toString()
val jacocoVersion = libs.versions.jacoco.get()
val outputVersion = "$appVersion-jacoco-$jacocoVersion"
dependencies {
implementation(libs.jetty.server)
implementation(libs.jetty.servlet)
implementation(libs.jersey.server)
implementation(libs.jersey.containerServletCore)
implementation(libs.jersey.containerJettyHttp)
implementation(libs.jersey.mediaJsonJackson)
implementation(libs.jersey.hk2)
runtimeOnly(libs.jakarta.activation.api)
implementation(project(":teamscale-client"))
implementation(project(":report-generator"))
implementation(libs.jacoco.core)
implementation(libs.jacoco.report)
implementation(libs.jacoco.agent) {
artifact {
classifier = "runtime"
}
}
implementation(libs.logback.core)
implementation(libs.logback.classic)
implementation(libs.jcommander)
implementation(libs.teamscaleLibCommons)
implementation(libs.retrofit.core)
implementation(libs.jackson.databind)
testImplementation(project(":tia-client"))
testImplementation(libs.retrofit.converter.jackson)
testImplementation(libs.okhttp.mockwebserver)
}
application {
mainClass.set("com.teamscale.jacoco.agent.Main")
}
tasks.shadowJar {
// since this is used as an agent, we want it to always have the same name
// otherwise people have to adjust their -javaagent parameters after every
// update
archiveFileName.set("teamscale-jacoco-agent.jar")
manifest {
attributes["Premain-Class"] = "com.teamscale.jacoco.agent.PreMain"
}
}
tasks.startShadowScripts {
applicationName = "convert"
}
distributions {
named("shadow") {
distributionBaseName.set("teamscale-jacoco-agent")
contents {
from(project(":installer").tasks["jlink"]) {
into("installer")
}
from(tasks.readmeToPdf) {
into("documentation")
rename("README.pdf", "userguide.pdf")
}
filesMatching("**/VERSION.txt") {
filter {
it.replace("%APP_VERSION_TOKEN_REPLACED_DURING_BUILD%", outputVersion)
}
}
}
}
}
tasks.shadowDistZip {
archiveFileName.set("teamscale-jacoco-agent.zip")
}
tasks.processResources {
filesMatching("**/app.properties") {
filter {
it.replace("%APP_VERSION_TOKEN_REPLACED_DURING_BUILD%", appVersion)
}
}
}