summaryrefslogtreecommitdiff
path: root/sw-server/build.gradle.kts
blob: f7bea3b1b2558328f2f6ac6d6fc02130ee4fe3c6 (plain)
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
plugins {
    kotlin("jvm")
    kotlin("plugin.spring")
    kotlin("plugin.serialization")
    id("org.springframework.boot") version "2.7.1"
}

apply(plugin = "io.spring.dependency-management")

dependencies {
    implementation(projects.swCommonModel)
    implementation(projects.swEngine)
    implementation(projects.swBot)
    implementation(kotlin("reflect")) // required by Spring 5

    implementation(libs.kotlinx.coroutines.core)
    implementation(libs.kotlinx.coroutines.reactor) // for Spring
    implementation(libs.kotlinx.serialization.json)

    implementation("org.springframework.boot:spring-boot-starter-websocket")
    implementation("org.springframework.boot:spring-boot-starter-security")
    // required by spring security when using websockets
    implementation("org.springframework.security:spring-security-messaging")

    // logging
    implementation(libs.logback.classic)
    implementation(libs.loki.logback.appender)

    // monitoring / metrics
    implementation("org.springframework.boot:spring-boot-starter-actuator")
    implementation(libs.micrometer.registry.prometheus)

    testImplementation(kotlin("test"))
    testImplementation(projects.swClient)
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.processResources {
    // make sure we build the frontend before creating the jar
    dependsOn(":sw-ui:assemble")
    // package the frontend app within the jar as static
    val frontendBuildDir = project(":sw-ui").buildDir
    val frontendDist = frontendBuildDir.toPath().resolve("distributions")
    from(frontendDist) {
        include("**/*")
        into("static")
    }
}

tasks.withType<Test> {
    testLogging {
        showStandardStreams = true
    }
}
bgstack15