qr-access-hardware-contract/build.gradle.kts
2025-01-03 18:12:08 +03:00

68 lines
1.7 KiB
Plaintext

plugins {
kotlin("jvm") version "2.0.21"
id("org.openapi.generator") version "7.10.0"
id("maven-publish")
}
group = "ru.vyatsu"
version = "1.0.0"
val generatedSourcesDir = "$buildDir/generated/openapi"
repositories {
mavenCentral()
}
// TODO: Нужно присобачить bom
dependencies {
compileOnly("com.squareup.okhttp3:okhttp:4.12.0")
compileOnly("com.squareup.moshi:moshi-kotlin:1.15.2")
compileOnly("org.springframework.boot:spring-boot-autoconfigure:3.4.1")
compileOnly("org.springframework.boot:spring-boot-starter-web:3.4.1")
compileOnly("org.springframework.boot:spring-boot-starter-validation:3.4.1")
compileOnly("jakarta.servlet:jakarta.servlet-api:6.1.0")
compileOnly("io.swagger.core.v3:swagger-annotations:2.2.27")
compileOnly("io.swagger.core.v3:swagger-models:2.2.27")
testImplementation(kotlin("test"))
}
tasks.test {
useJUnitPlatform()
}
kotlin {
jvmToolchain(17)
}
tasks.openApiGenerate {
generatorName.set("kotlin-spring")
inputSpec.set("$rootDir/src/main/resources/openapi-contract.yaml")
outputDir.set(generatedSourcesDir)
packageName.set("ru.vyatsu")
configOptions.put("interfaceOnly", "true")
configOptions.put("useSpringBoot3", "true")
configOptions.put("useBeanValidation", "false")
configOptions.put("useSwaggerUI", "false")
}
sourceSets {
getByName("main") {
kotlin {
srcDir("$generatedSourcesDir/src/main/kotlin")
}
}
}
tasks.compileKotlin {
dependsOn(tasks.openApiGenerate)
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["kotlin"])
artifactId = tasks.jar.get().archiveBaseName.get()
}
}
}