1+ import com.vanniktech.maven.publish.JavadocJar
2+ import com.vanniktech.maven.publish.KotlinJvm
3+ import com.vanniktech.maven.publish.SonatypeHost
4+ import io.gitlab.arturbosch.detekt.Detekt
5+
6+ val projectGroupId: String by project
7+ val projectVersion: String by project
8+ group = projectGroupId
9+ version = projectVersion
10+
11+ plugins {
12+ kotlin(" jvm" )
13+ id(" org.owasp.dependencycheck" )
14+ id(" com.github.ben-manes.versions" )
15+ id(" io.gitlab.arturbosch.detekt" )
16+ id(" com.vanniktech.maven.publish" )
17+ id(" org.jetbrains.dokka" )
18+ }
19+
20+ repositories {
21+ mavenCentral()
22+ }
23+
24+ dependencies {
25+
26+ val versionKtor: String by project
27+ implementation(" io.ktor:ktor-server-core-jvm:$versionKtor " )
28+ implementation(" io.ktor:ktor-server-auth:$versionKtor " )
29+ implementation(" io.ktor:ktor-server-resources:$versionKtor " )
30+ testImplementation(" io.ktor:ktor-server-netty-jvm:$versionKtor " )
31+ testImplementation(" io.ktor:ktor-server-content-negotiation:$versionKtor " )
32+ testImplementation(" io.ktor:ktor-serialization-jackson:$versionKtor " )
33+ testImplementation(" io.ktor:ktor-server-auth:$versionKtor " )
34+ testImplementation(" io.ktor:ktor-server-call-logging:$versionKtor " )
35+ testImplementation(" io.ktor:ktor-server-test-host:$versionKtor " )
36+
37+ val versionSwaggerParser: String by project
38+ implementation(" io.swagger.parser.v3:swagger-parser:$versionSwaggerParser " )
39+
40+ val versionJackson: String by project
41+ implementation(" com.fasterxml.jackson.module:jackson-module-kotlin:$versionJackson " )
42+
43+ val versionSchemaKenerator: String by project
44+ implementation(" io.github.smiley4:schema-kenerator-core:$versionSchemaKenerator " )
45+ implementation(" io.github.smiley4:schema-kenerator-reflection:$versionSchemaKenerator " )
46+ implementation(" io.github.smiley4:schema-kenerator-swagger:$versionSchemaKenerator " )
47+
48+ val versionKotlinLogging: String by project
49+ implementation(" io.github.oshai:kotlin-logging-jvm:$versionKotlinLogging " )
50+
51+ val versionKotest: String by project
52+ testImplementation(" io.kotest:kotest-runner-junit5:$versionKotest " )
53+ testImplementation(" io.kotest:kotest-assertions-core:$versionKotest " )
54+
55+ val versionKotlinTest: String by project
56+ testImplementation(" org.jetbrains.kotlin:kotlin-test:$versionKotlinTest " )
57+
58+ val versionMockk: String by project
59+ testImplementation(" io.mockk:mockk:$versionMockk " )
60+
61+ }
62+
63+ kotlin {
64+ jvmToolchain(11 )
65+ }
66+
67+ tasks.withType<Test >().configureEach {
68+ useJUnitPlatform()
69+ }
70+
71+ detekt {
72+ ignoreFailures = false
73+ buildUponDefaultConfig = true
74+ allRules = false
75+ config.setFrom(" $projectDir /../detekt/detekt.yml" )
76+ }
77+ tasks.withType<Detekt >().configureEach {
78+ reports {
79+ html.required.set(true )
80+ md.required.set(true )
81+ xml.required.set(false )
82+ txt.required.set(false )
83+ sarif.required.set(false )
84+ }
85+ }
86+
87+ mavenPublishing {
88+ val projectGroupId: String by project
89+ val projectVersion: String by project
90+ val projectScmUrl: String by project
91+ val projectScmConnection: String by project
92+ val projectLicenseName: String by project
93+ val projectLicenseUrl: String by project
94+ val projectDeveloperName: String by project
95+ val projectDeveloperUrl: String by project
96+
97+ configure(KotlinJvm (JavadocJar .Dokka (" dokkaHtml" ), true ))
98+ publishToMavenCentral(SonatypeHost .S01 )
99+ signAllPublications()
100+ coordinates(projectGroupId, " ktor-openapi" , projectVersion)
101+ pom {
102+ name.set(" Ktor OpenApi" )
103+ description.set(" Ktor plugin to automatically generate and provide OpenApi" )
104+ url.set(projectScmUrl)
105+ licenses {
106+ license {
107+ name.set(projectLicenseName)
108+ url.set(projectLicenseUrl)
109+ distribution.set(projectLicenseUrl)
110+ }
111+ }
112+ scm {
113+ url.set(projectScmUrl)
114+ connection.set(projectScmConnection)
115+ }
116+ developers {
117+ developer {
118+ id.set(projectDeveloperName)
119+ name.set(projectDeveloperName)
120+ url.set(projectDeveloperUrl)
121+ }
122+ }
123+ }
124+ }
0 commit comments