-
Notifications
You must be signed in to change notification settings - Fork 3
/
build.gradle.kts
114 lines (96 loc) · 3.58 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
plugins {
id("java")
id("com.github.johnrengelman.shadow") version Versions.shadowJar
kotlin("jvm") version Versions.kotlinJvm
kotlin("plugin.serialization") version Versions.kotlinSerialization
id("jacoco")
id("com.jetbrains.exposed.gradle.plugin") version Versions.exposedGradlePlugin
id("org.sonarqube") version Versions.sonarQube
}
allprojects {
apply(plugin = "kotlin")
apply(plugin = "jacoco")
apply(plugin = "com.github.johnrengelman.shadow")
jacoco {
toolVersion = Versions.jacoco
}
group = "fr.fabienhebuterne"
version = System.getProperty("tagVersion") ?: "SNAPSHOT"
repositories {
mavenCentral()
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
maven("https://oss.sonatype.org/content/repositories/snapshots")
maven("https://jitpack.io")
maven("https://libraries.minecraft.net")
}
defaultDependencies()
dependencies {
implementation("org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlinReflect}")
testImplementation("io.mockk:mockk:${Versions.mockk}")
testImplementation("io.strikt:strikt-core:${Versions.strikt}")
testImplementation("org.junit.jupiter:junit-jupiter:${Versions.junit}")
testImplementation("org.junit.jupiter:junit-jupiter-api:${Versions.junit}")
}
configurations.all {
resolutionStrategy {
// to avoid duplication on shadowJar
force("org.jetbrains:annotations:13.0")
force("org.jetbrains.kotlin:kotlin-stdlib:${Versions.kotlinJvm}")
force("org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlinReflect}")
}
}
tasks.test {
useJUnitPlatform()
finalizedBy(tasks.jacocoTestReport)
}
tasks.jacocoTestReport {
dependsOn(tasks.test)
reports {
xml.required.set(true)
csv.required.set(true)
}
}
tasks.compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
tasks.compileJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
tasks.compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
tasks.compileTestJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
// TODO : How to relocate kotlin, annotations ? issue caused by duplicated versions
tasks.shadowJar {
mergeServiceFiles()
// relocate kotlin libs
relocate("kotlinx", "fr.fabienhebuterne.marketplace.libs.kotlinx")
relocate("org.kodein", "fr.fabienhebuterne.marketplace.libs.org.kodein")
// relocate java libs
//relocate("org.intellij", "fr.fabienhebuterne.marketplace.libs.org.intellij")
//relocate("org.jetbrains.annotations", "fr.fabienhebuterne.marketplace.libs.org.jetbrains.annotations")
relocate("org.joda.time", "fr.fabienhebuterne.marketplace.libs.org.joda.time")
relocate("com.mysql", "fr.fabienhebuterne.marketplace.libs.mysql")
relocate("org.slf4j", "fr.fabienhebuterne.marketplace.libs.org.slf4j")
relocate("com.google", "fr.fabienhebuterne.marketplace.libs.com.google")
relocate("org.yaml", "fr.fabienhebuterne.marketplace.libs.org.yaml")
// relocate mc libs
relocate("me.lucko.commodore", "fr.fabienhebuterne.marketplace.libs.commodore")
exclude("DebugProbesKt.bin")
exclude("module-info.class")
dependencies {
exclude(dependency("com.mojang:brigadier"))
}
}
tasks.build {
dependsOn("shadowJar")
}
}