diff options
Diffstat (limited to 'opendc-web/opendc-web-api/build.gradle.kts')
| -rw-r--r-- | opendc-web/opendc-web-api/build.gradle.kts | 74 |
1 files changed, 73 insertions, 1 deletions
diff --git a/opendc-web/opendc-web-api/build.gradle.kts b/opendc-web/opendc-web-api/build.gradle.kts index 7edfd134..853632a7 100644 --- a/opendc-web/opendc-web-api/build.gradle.kts +++ b/opendc-web/opendc-web-api/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 AtLarge Research + * Copyright (c) 2020 AtLarge Research * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -19,3 +19,75 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ + +description = "REST API for the OpenDC website" + +/* Build configuration */ +plugins { + `kotlin-conventions` + kotlin("plugin.allopen") + kotlin("plugin.jpa") + `testing-conventions` + `jacoco-conventions` + id("io.quarkus") +} + +dependencies { + implementation(enforcedPlatform(libs.quarkus.bom)) + + implementation(projects.opendcWeb.opendcWebProto) + + implementation(libs.quarkus.kotlin) + implementation(libs.quarkus.resteasy.core) + implementation(libs.quarkus.resteasy.jackson) + implementation(libs.jackson.module.kotlin) + implementation(libs.quarkus.smallrye.openapi) + + implementation(libs.quarkus.security) + implementation(libs.quarkus.oidc) + + implementation(libs.quarkus.hibernate.orm) + implementation(libs.quarkus.hibernate.validator) + implementation(libs.quarkus.jdbc.postgresql) + quarkusDev(libs.quarkus.jdbc.h2) + + testImplementation(libs.quarkus.junit5.core) + testImplementation(libs.quarkus.junit5.mockk) + testImplementation(libs.quarkus.jacoco) + testImplementation(libs.restassured.core) + testImplementation(libs.restassured.kotlin) + testImplementation(libs.quarkus.test.security) + testImplementation(libs.quarkus.jdbc.h2) +} + +allOpen { + annotation("javax.ws.rs.Path") + annotation("javax.enterprise.context.ApplicationScoped") + annotation("io.quarkus.test.junit.QuarkusTest") + annotation("javax.persistence.Entity") +} + +tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { + kotlinOptions.javaParameters = true +} + +tasks.quarkusDev { + workingDir = rootProject.projectDir.toString() +} + +tasks.test { + extensions.configure(JacocoTaskExtension::class) { + excludeClassLoaders = listOf("*QuarkusClassLoader") + // destinationFile = layout.buildDirectory.file("jacoco-quarkus.exec").get().asFile + } +} + +/* Fix for Quarkus/ktlint-gradle incompatibilities */ +tasks.named("runKtlintCheckOverMainSourceSet").configure { + mustRunAfter(tasks.quarkusGenerateCode) + mustRunAfter(tasks.quarkusGenerateCodeDev) +} + +tasks.named("runKtlintCheckOverTestSourceSet").configure { + mustRunAfter(tasks.quarkusGenerateCodeTests) +} |
