-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
99 lines (80 loc) · 2.82 KB
/
build.gradle.kts
File metadata and controls
99 lines (80 loc) · 2.82 KB
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
import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer
val asmVersion: String by rootProject
val kryoVersion: String by rootProject
val kryoSerializersVersion: String by rootProject
val kotlinLoggingVersion: String by rootProject
val rdVersion: String by rootProject
val mockitoVersion: String by rootProject
val mockitoInlineVersion: String by rootProject
plugins {
id("com.github.johnrengelman.shadow") version "7.1.2"
id("java")
application
}
tasks.compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
tasks.compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
application {
mainClass.set("org.utbot.instrumentation.process.InstrumentedProcessMainKt")
}
val fetchSpringCommonsJar: Configuration by configurations.creating {
isCanBeResolved = true
isCanBeConsumed = false
}
dependencies {
implementation(project(":utbot-framework-api"))
implementation(project(":utbot-rd"))
implementation("org.ow2.asm:asm:$asmVersion")
implementation("org.ow2.asm:asm-commons:$asmVersion")
implementation("io.github.microutils:kotlin-logging:$kotlinLoggingVersion")
implementation("com.jetbrains.rd:rd-framework:$rdVersion")
implementation("com.jetbrains.rd:rd-core:$rdVersion")
implementation("net.java.dev.jna:jna-platform:5.5.0")
// TODO: this is necessary for inline classes mocking in UtExecutionInstrumentation
implementation("org.mockito:mockito-core:$mockitoVersion")
implementation("org.mockito:mockito-inline:$mockitoInlineVersion")
implementation(project(":utbot-spring-commons-api"))
fetchSpringCommonsJar(project(":utbot-spring-commons", configuration = "springCommonsJar"))
}
/**
* Shadow plugin unpacks the nested `utbot-spring-commons-shadow.jar`.
* But we need it to be packed. Workaround: double-nest the jar.
*/
val shadowJarUnpackWorkaround by tasks.register<Jar>("shadowBugWorkaround") {
destinationDirectory.set(layout.buildDirectory.dir("build/shadow-bug-workaround"))
from(fetchSpringCommonsJar) {
into("lib")
}
}
tasks.shadowJar {
dependsOn(shadowJarUnpackWorkaround)
from(shadowJarUnpackWorkaround) {
into("lib")
}
manifest {
attributes(
"Main-Class" to "org.utbot.instrumentation.process.InstrumentedProcessMainKt",
"Premain-Class" to "org.utbot.instrumentation.agent.Agent",
)
}
transform(Log4j2PluginsCacheFileTransformer::class.java)
archiveFileName.set("utbot-instrumentation-shadow.jar")
}
val instrumentationArchive: Configuration by configurations.creating {
isCanBeResolved = false
isCanBeConsumed = true
}
artifacts {
add(instrumentationArchive.name, tasks.shadowJar)
}