71 lines
2.4 KiB
Plaintext
71 lines
2.4 KiB
Plaintext
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||
|
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
|
||
|
|
||
|
plugins {
|
||
|
id("org.springframework.boot") version "3.1.4"
|
||
|
id("io.spring.dependency-management") version "1.1.3"
|
||
|
kotlin("jvm") version "1.8.22"
|
||
|
kotlin("plugin.spring") version "1.8.22"
|
||
|
id("org.openapi.generator") version "7.0.1"
|
||
|
}
|
||
|
|
||
|
group = "dev.usbharu"
|
||
|
version = "0.0.1-SNAPSHOT"
|
||
|
|
||
|
java {
|
||
|
sourceCompatibility = JavaVersion.VERSION_17
|
||
|
}
|
||
|
|
||
|
repositories {
|
||
|
mavenCentral()
|
||
|
}
|
||
|
|
||
|
dependencies {
|
||
|
implementation("org.springframework.boot:spring-boot-starter-web")
|
||
|
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
|
||
|
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
||
|
testImplementation("org.springframework.boot:spring-boot-starter-test")
|
||
|
|
||
|
implementation("jakarta.validation:jakarta.validation-api")
|
||
|
implementation("jakarta.annotation:jakarta.annotation-api:2.1.0")
|
||
|
compileOnly("io.swagger.core.v3:swagger-annotations:2.2.6")
|
||
|
implementation("io.swagger.core.v3:swagger-models:2.2.6")
|
||
|
}
|
||
|
|
||
|
tasks.withType<KotlinCompile> {
|
||
|
kotlinOptions {
|
||
|
freeCompilerArgs += "-Xjsr305=strict"
|
||
|
jvmTarget = "17"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
tasks.withType<Test> {
|
||
|
useJUnitPlatform()
|
||
|
}
|
||
|
|
||
|
tasks.create<GenerateTask>("openApiGenerateMastodonCompatibleApi", GenerateTask::class) {
|
||
|
generatorName.set("kotlin-spring")
|
||
|
inputSpec.set("$rootDir/src/main/resources/openapi/mastodon.yaml")
|
||
|
outputDir.set("$buildDir/generated/sources/mastodon")
|
||
|
apiPackage.set("dev.usbharu.hideout.controller.mastodon.generated")
|
||
|
modelPackage.set("dev.usbharu.hideout.domain.mastodon.model.generated")
|
||
|
configOptions.put("interfaceOnly", "true")
|
||
|
configOptions.put("useSpringBoot3", "true")
|
||
|
additionalProperties.put("useTags", "true")
|
||
|
importMappings.put("org.springframework.core.io.Resource", "org.springframework.web.multipart.MultipartFile")
|
||
|
typeMappings.put("org.springframework.core.io.Resource", "org.springframework.web.multipart.MultipartFile")
|
||
|
templateDir.set("$rootDir/templates")
|
||
|
globalProperties.put("debugModels","true")
|
||
|
globalProperties.put("debugOpenAPI","true")
|
||
|
globalProperties.put("debugOperations","true")
|
||
|
}
|
||
|
|
||
|
|
||
|
sourceSets.main {
|
||
|
kotlin.srcDirs(
|
||
|
"$buildDir/generated/ksp/main",
|
||
|
"$buildDir/generated/sources/openapi/src/main/kotlin",
|
||
|
"$buildDir/generated/sources/mastodon/src/main/kotlin"
|
||
|
)
|
||
|
}
|