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()
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |