-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
123 lines (107 loc) · 3.37 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
116
117
118
119
120
121
122
123
val arkenvVersion: String by project
val dockerSecretsJavaVersion: String by project
val jbcryptVersion: String by project
val jUnitVersion: String by project
val kmongoVersion: String by project
val koinVersion: String by project
val kotlinVersion: String by project
val ktorVersion: String by project
val logbackVersion: String by project
plugins {
application
kotlin("jvm")
id("org.jetbrains.dokka")
id("org.jlleitschuh.gradle.ktlint")
id("com.github.johnrengelman.shadow")
id("com.sourcemuse.mongo")
jacoco
}
group = "eu.yeger"
version = "1.0.0"
application {
mainClassName = "io.ktor.server.netty.EngineMain"
}
sourceSets {
main {
java.srcDirs("src")
resources.srcDirs("resources")
}
test {
java.srcDirs("test")
resources.srcDirs("testresources")
}
}
repositories {
mavenLocal()
jcenter()
maven(url = "https://kotlin.bintray.com/ktor")
}
dependencies {
// Kotlin dependencies
implementation(kotlin("stdlib-jdk8", version = kotlinVersion))
implementation(kotlin("reflect", version = kotlinVersion))
// Ktor dependencies
implementation("io.ktor:ktor-server-netty:$ktorVersion")
implementation("io.ktor:ktor-server-core:$ktorVersion")
implementation("io.ktor:ktor-server-host-common:$ktorVersion")
implementation("io.ktor:ktor-auth:$ktorVersion")
implementation("io.ktor:ktor-auth-jwt:$ktorVersion")
implementation("io.ktor:ktor-jackson:$ktorVersion")
implementation("io.ktor:ktor-client-core:$ktorVersion")
implementation("io.ktor:ktor-client-core-jvm:$ktorVersion")
implementation("io.ktor:ktor-client-cio:$ktorVersion")
// Other dependencies
implementation("com.apurebase:arkenv:$arkenvVersion")
implementation("com.cars:docker-secrets:$dockerSecretsJavaVersion")
implementation("org.mindrot:jbcrypt:$jbcryptVersion")
implementation("org.litote.kmongo:kmongo-coroutine:$kmongoVersion")
implementation("org.koin:koin-ktor:$koinVersion")
implementation("ch.qos.logback:logback-classic:$logbackVersion")
// Test dependencies
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$jUnitVersion")
testImplementation("org.junit.jupiter:junit-jupiter-api:$jUnitVersion")
testImplementation("io.ktor:ktor-server-tests:$ktorVersion")
testImplementation("io.ktor:ktor-client-mock:$ktorVersion")
testImplementation("io.ktor:ktor-client-mock-jvm:$ktorVersion")
}
tasks {
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.useIR = true
// Format the code before compilation
dependsOn(ktlintFormat)
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.useIR = true
}
ktlintFormat {
// Delete the folders that are incorrectly generated by ktlintFormat
doLast {
delete("/src/main", "/src/test")
}
}
test {
environment(
"KOFFEE_SECRET" to "",
"URL" to "yeger.eu",
"DATABASE_HOST" to "localhost",
"DATABASE_PORT" to "27017"
)
dependsOn(startManagedMongoDb)
useJUnitPlatform()
}
shadowJar {
archiveFileName.set("${project.name}.jar")
}
jacocoTestReport {
reports {
xml.isEnabled = true
html.isEnabled = false
}
}
}
mongo {
auth = false
logging = "none"
}