diff --git a/api-model-v1-41/build.gradle.kts b/api-model-v1-41/build.gradle.kts index 6418ab6..a109681 100644 --- a/api-model-v1-41/build.gradle.kts +++ b/api-model-v1-41/build.gradle.kts @@ -3,7 +3,7 @@ import java.util.* plugins { id("java") - id("org.jetbrains.kotlin.jvm") + alias(libs.plugins.kotlinJvm) id("com.google.devtools.ksp") id("maven-publish") id("signing") @@ -108,23 +108,20 @@ repositories { dependencies { constraints { - listOf( - "com.squareup.okio:okio", - "com.squareup.okio:okio-jvm" - ).forEach { + listOf(libs.bundles.okio).forEach { implementation(it) { version { - strictly("[3,4)") - prefer("3.9.1") + strictly(libs.versions.okioVersionrange.get()) + prefer(libs.versions.okio.get()) } } } } - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0") + implementation(libs.kotlinJdk8) - implementation("com.squareup.moshi:moshi:1.15.2") - ksp("com.squareup.moshi:moshi-kotlin-codegen:1.15.2") - compileOnly("com.squareup.okhttp3:okhttp:4.12.0") + implementation(libs.moshi) + ksp("com.squareup.moshi:moshi-kotlin-codegen:${libs.versions.moshi.get()}") + compileOnly(libs.okhttp) testImplementation("org.junit.jupiter:junit-jupiter-api:5.11.4") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.11.4") diff --git a/api-model-v1-45/build.gradle.kts b/api-model-v1-45/build.gradle.kts index 8acd680..50906dd 100644 --- a/api-model-v1-45/build.gradle.kts +++ b/api-model-v1-45/build.gradle.kts @@ -3,7 +3,7 @@ import java.util.* plugins { id("java") - id("org.jetbrains.kotlin.jvm") + alias(libs.plugins.kotlinJvm) id("com.google.devtools.ksp") id("maven-publish") id("signing") @@ -108,23 +108,20 @@ repositories { dependencies { constraints { - listOf( - "com.squareup.okio:okio", - "com.squareup.okio:okio-jvm" - ).forEach { + listOf(libs.bundles.okio).forEach { implementation(it) { version { - strictly("[3,4)") - prefer("3.9.1") + strictly(libs.versions.okioVersionrange.get()) + prefer(libs.versions.okio.get()) } } } } - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0") + implementation(libs.kotlinJdk8) - implementation("com.squareup.moshi:moshi:1.15.2") - ksp("com.squareup.moshi:moshi-kotlin-codegen:1.15.2") - compileOnly("com.squareup.okhttp3:okhttp:4.12.0") + implementation(libs.moshi) + ksp("com.squareup.moshi:moshi-kotlin-codegen:${libs.versions.moshi.get()}") + compileOnly(libs.okhttp) testImplementation("org.junit.jupiter:junit-jupiter-api:5.11.4") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.11.4") diff --git a/build.gradle.kts b/build.gradle.kts index b786063..c576fc6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,25 +4,25 @@ import java.util.* rootProject.extra.set("artifactVersion", SimpleDateFormat("yyyy-MM-dd\'T\'HH-mm-ss").format(Date())) plugins { - id("maven-publish") - id("com.github.ben-manes.versions") version "0.51.0" - id("net.ossindex.audit") version "0.4.11" - id("io.freefair.maven-central.validate-poms") version "8.11" - id("io.github.gradle-nexus.publish-plugin") version "2.0.0" - id("org.jetbrains.kotlin.jvm") version "2.1.0" apply false - id("com.google.devtools.ksp") version "2.1.0-1.0.29" apply false - id("org.openapi.generator") version "7.10.0" apply false - id("org.jlleitschuh.gradle.ktlint") version "12.1.2" apply false + id("maven-publish") + id("com.github.ben-manes.versions") version "0.51.0" + id("net.ossindex.audit") version "0.4.11" + id("io.freefair.maven-central.validate-poms") version "8.11" + id("io.github.gradle-nexus.publish-plugin") version "2.0.0" + alias(libs.plugins.kotlinJvm) apply false + id("com.google.devtools.ksp") version "2.1.0-1.0.29" apply false + id("org.openapi.generator") version "7.10.0" apply false + id("org.jlleitschuh.gradle.ktlint") version "12.1.2" apply false } val dependencyVersions = listOf( - "org.jetbrains.kotlin:kotlin-reflect:2.1.0", - "org.jetbrains.kotlin:kotlin-script-runtime:2.1.0", - "org.jetbrains.kotlin:kotlin-stdlib:2.1.0", - "org.jetbrains.kotlin:kotlin-stdlib-common:2.1.0", - "org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.0", - "org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0", - "org.slf4j:slf4j-api:2.0.16", + libs.kotlinReflect, + libs.kotlinScriptRuntime, + libs.kotlinStdlib, + libs.kotlinCommon, + libs.kotlinJdk7, + libs.kotlinJdk8, + libs.slf4j, ) val dependencyGroupVersions = mapOf( @@ -31,32 +31,32 @@ val dependencyGroupVersions = mapOf( ) subprojects { - configurations.all { - resolutionStrategy { - failOnVersionConflict() - force(dependencyVersions) - eachDependency { - val forcedVersion = dependencyGroupVersions[requested.group] - if (forcedVersion != null) { - useVersion(forcedVersion) + configurations.all { + resolutionStrategy { + failOnVersionConflict() + force(dependencyVersions) + eachDependency { + val forcedVersion = dependencyGroupVersions[requested.group] + if (forcedVersion != null) { + useVersion(forcedVersion) + } + } } - } } - } } fun findProperty(s: String) = project.findProperty(s) as String? val isSnapshot = project.version == "unspecified" nexusPublishing { - repositories { - if (!isSnapshot) { - sonatype { - // 'sonatype' is pre-configured for Sonatype Nexus (OSSRH) which is used for The Central Repository - stagingProfileId.set(System.getenv("SONATYPE_STAGING_PROFILE_ID") ?: findProperty("sonatype.staging.profile.id")) //can reduce execution time by even 10 seconds - username.set(System.getenv("SONATYPE_USERNAME") ?: findProperty("sonatype.username")) - password.set(System.getenv("SONATYPE_PASSWORD") ?: findProperty("sonatype.password")) - } + repositories { + if (!isSnapshot) { + sonatype { + // 'sonatype' is pre-configured for Sonatype Nexus (OSSRH) which is used for The Central Repository + stagingProfileId.set(System.getenv("SONATYPE_STAGING_PROFILE_ID") ?: findProperty("sonatype.staging.profile.id")) //can reduce execution time by even 10 seconds + username.set(System.getenv("SONATYPE_USERNAME") ?: findProperty("sonatype.username")) + password.set(System.getenv("SONATYPE_PASSWORD") ?: findProperty("sonatype.password")) + } + } } - } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..799d67c --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,40 @@ +[versions] +junitJupiter = "5.11.0" +junitPlatform = "1.11.0" +kotlin = "2.1.0" +kotlinVersionrange = "[1.6,3)" +logback = "1.3.15" +logbackVersionrange = "[1.2,2)" +moshi = "1.15.2" +moshiVersionrange = "[1.12.0,2)" +okhttp = "4.12.0" +okio = "3.10.2" +okioVersionrange = "[3,4)" +slf4j = "2.0.16" +slf4jVersionrange = "[1.7,3)" + +[libraries] +kotlin = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } +kotlinCommon = { module = "org.jetbrains.kotlin:kotlin-stdlib-common", version.ref = "kotlin" } +kotlinJdk7 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk7", version.ref = "kotlin" } +kotlinJdk8 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } +kotlinReflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } +kotlinScriptRuntime = { module = "org.jetbrains.kotlin:kotlin-script-runtime", version.ref = "kotlin" } +kotlinScriptingJvm = { module = "org.jetbrains.kotlin:kotlin-scripting-jvm", version.ref = "kotlin" } +kotlinStdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } +kotlinTest = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } +logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } +moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" } +moshiKotlin = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshi" } +okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } +okio = { module = "com.squareup.okio:okio", version.ref = "okio" } +okioJvm = { module = "com.squareup.okio:okio-jvm", version.ref = "okio" } +slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } + +[bundles] +kotlin = ["kotlin", "kotlinCommon", "kotlinJdk7", "kotlinJdk8", "kotlinReflect", "kotlinScriptingJvm", "kotlinStdlib", "kotlinTest"] +moshi = ["moshi", "moshiKotlin"] +okio = ["okio", "okioJvm"] + +[plugins] +kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }