68 lines
1.7 KiB
Plaintext
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()
|
|
}
|
|
}
|
|
} |