Newer
Older
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("org.springframework.boot") version "3.1.5"
id("io.spring.dependency-management") version "1.1.3"
id("org.jetbrains.kotlin.plugin.allopen") version "1.9.10"
kotlin("jvm") version "1.9.10"
kotlin("plugin.spring") version "1.9.10"
kotlin("plugin.jpa") version "1.9.10"
kotlin("plugin.serialization") version "1.9.10"
annotation("javax.persistence.Entity")
annotation("javax.persistence.Embeddable")
annotation("javax.persistence.MappedSuperclass")
annotation("jakarta.persistence.Entity")
annotation("jakarta.persistence.Embeddable")
annotation("jakarta.persistence.MappedSuperclass")
java.sourceCompatibility = JavaVersion.VERSION_17
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.23.1")
implementation("org.springframework.boot:spring-boot-starter-data-jpa:3.1.5")
implementation("org.springframework.boot:spring-boot-starter-validation:3.1.5")
implementation("org.springframework.boot:spring-boot-starter-security:3.1.5")
implementation("org.springframework.boot:spring-boot-starter-webflux:3.1.5")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.3")

Jan-Niclas Strüwer
committed
implementation("org.jetbrains.kotlin:kotlin-reflect:1.9.10")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.7.3")
implementation("org.springdoc:springdoc-openapi-starter-webflux-ui:2.2.0")
implementation("org.gitlab4j:gitlab4j-api:6.0.0-rc.2")

Jan-Niclas Strüwer
committed
implementation("org.eclipse.jgit:org.eclipse.jgit:6.7.0.202309050840-r")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
implementation("org.springframework.boot:spring-boot-starter-actuator:3.1.5")

Jan-Niclas Strüwer
committed
implementation("io.ktor:ktor-client-core-jvm:2.3.5")
implementation("io.ktor:ktor-client-cio-jvm:2.3.5")
implementation("io.ktor:ktor-client-content-negotiation:2.3.5")
implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.5")
developmentOnly("org.springframework.boot:spring-boot-devtools:3.1.5")

Jan-Niclas Strüwer
committed
runtimeOnly("org.postgresql:postgresql:42.6.0")
testImplementation("org.springframework.boot:spring-boot-starter-test:3.1.5") {
exclude(module = "mockito-core")

Jan-Niclas Strüwer
committed
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")

Jan-Niclas Strüwer
committed
testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.2")
testImplementation("io.ktor:ktor-client-mock:2.3.5")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.2")
testRuntimeOnly("com.h2database:h2:2.2.224")
testImplementation("com.ninja-squad:springmockk:4.0.2")
testImplementation("org.springframework.security:spring-security-test:6.1.5")

Jan-Niclas Strüwer
committed
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3")
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
124
125
126
127
128
129
detekt {
// Version of detekt that will be used. When unspecified the latest detekt
// version found will be used. Override to stay on the same version.
toolVersion = "1.23.1"
// The directories where detekt looks for source files.
// Defaults to `files("src/main/java", "src/test/java", "src/main/kotlin", "src/test/kotlin")`.
source.setFrom("src/main/java", "src/main/kotlin")
// Builds the AST in parallel. Rules are always executed in parallel.
// Can lead to speedups in larger projects. `false` by default.
parallel = false
// Define the detekt configuration(s) you want to use.
// Defaults to the default detekt configuration.
config.setFrom("config/detekt.yml")
// Applies the config files on top of detekt's default config file. `false` by default.
buildUponDefaultConfig = true
// Turns on all the rules. `false` by default.
allRules = false
// Specifying a baseline file. All findings stored in this file in subsequent runs of detekt.
baseline = file("config/baseline.xml")
// Disables all default detekt rulesets and will only run detekt with custom rules
// defined in plugins passed in with `detektPlugins` configuration. `false` by default.
disableDefaultRuleSets = false
// Adds debug output during task execution. `false` by default.
debug = false
// If set to `true` the build does not fail when the
// maxIssues count was reached. Defaults to `false`.
ignoreFailures = false
// Android: Don't create tasks for the specified build types (e.g. "release")
ignoredBuildTypes = listOf("release")
// Android: Don't create tasks for the specified build flavor (e.g. "production")
ignoredFlavors = listOf("production")
// Android: Don't create tasks for the specified build variants (e.g. "productionRelease")
ignoredVariants = listOf("productionRelease")
// Specify the base path for file paths in the formatted reports.
// If not set, all file paths reported will be absolute file path.
basePath = projectDir.absolutePath
}
configurations.all {
resolutionStrategy.eachDependency {
if (requested.group == "org.jetbrains.kotlin") {
useVersion("1.9.0")
}
}
}
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "17"
}