Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gradle version catalog #1344

Merged
merged 12 commits into from
Mar 6, 2025
17 changes: 3 additions & 14 deletions brevbaker-dsl/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

val apiModelJavaTarget: String by System.getProperties()
val commonVersion: String by project
val hamkrestVersion: String by project
val jupiterVersion: String by project

plugins {
kotlin("jvm")
id("com.google.devtools.ksp")
}

group = "no.nav.pensjon.brevbaker"
Expand All @@ -25,25 +21,18 @@ repositories {

dependencies {
implementation(kotlin("stdlib"))
implementation("no.nav.pensjon.brevbaker:brevbaker-api-model-common:$commonVersion")
implementation(libs.brevbaker.common)

// JUnit 5
testImplementation(platform("org.junit:junit-bom:$jupiterVersion"))
testImplementation("org.junit.jupiter:junit-jupiter")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
testImplementation("com.natpryce:hamkrest:$hamkrestVersion")
testImplementation(libs.bundles.junit)
testImplementation(libs.hamkrest)
testImplementation(kotlin("reflect"))
}

kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.fromTarget(apiModelJavaTarget))
}
sourceSets {
test {
kotlin.srcDir("build/generated/ksp/test/kotlin")
}
}
}
tasks {
test {
Expand Down
27 changes: 11 additions & 16 deletions brevbaker/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

val apiModelJavaTarget: String by System.getProperties()
val hamkrestVersion: String by project
val commonVersion: String by project
val logstashVersion: String by project
val ktorVersion: String by System.getProperties()
val jacksonJsr310Version: String by project

plugins {
kotlin("jvm")
id("java-library")
id("java-test-fixtures")
id("com.google.devtools.ksp")
alias(libs.plugins.ksp) apply true
}

group = "no.nav.brev.brevbaker"
Expand All @@ -25,22 +20,22 @@ repositories {

dependencies {
api(project(":brevbaker-dsl"))
api("no.nav.pensjon.brevbaker:brevbaker-api-model-common:$commonVersion")
api(libs.brevbaker.common)
ksp(project(":template-model-generator"))
implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.12.0")
implementation(libs.kotlinx.html)

testImplementation(kotlin("test"))
testImplementation("com.natpryce:hamkrest:$hamkrestVersion")
testImplementation(libs.hamkrest)

testFixturesImplementation(libs.ktor.serialization.jackson)
testFixturesImplementation(libs.ktor.client.cio)
testFixturesImplementation(libs.ktor.client.content.negotiation)
testFixturesImplementation(libs.ktor.client.encoding)
testFixturesImplementation(libs.ktor.server.call.id)

testFixturesImplementation("net.logstash.logback:logstash-logback-encoder:$logstashVersion")
testFixturesImplementation("io.ktor:ktor-serialization-jackson:$ktorVersion")
testFixturesImplementation("io.ktor:ktor-client-cio:$ktorVersion")
testFixturesImplementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
testFixturesImplementation("io.ktor:ktor-client-encoding:$ktorVersion")
testFixturesImplementation("io.ktor:ktor-server-call-id:$ktorVersion")
testFixturesImplementation(libs.bundles.logging)

testFixturesImplementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jacksonJsr310Version") {
testFixturesImplementation(libs.jackson.datatype.jsr310) {
because("we require deserialization/serialization of java.time.LocalDate")
}
}
Expand Down
10 changes: 3 additions & 7 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
plugins {
val kotlinVersion: String by System.getProperties()
val ktorVersion: String by System.getProperties()
val kspVersion: String by System.getProperties()

kotlin("jvm") version kotlinVersion apply false
id("com.google.devtools.ksp") version "$kotlinVersion-$kspVersion" apply false
id("io.ktor.plugin") version ktorVersion apply false
kotlin("jvm") version libs.versions.kotlinVersion apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.ktor) apply false
}

allprojects {
Expand Down
17 changes: 5 additions & 12 deletions etterlattemaler/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,10 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

val apiModelJavaTarget: String by System.getProperties()
val jacksonJsr310Version: String by project
val jupiterVersion: String by project
val logstashVersion: String by project
val ktorVersion: String by System.getProperties()
val mockkVersion: String by project

plugins {
kotlin("jvm")
id("com.google.devtools.ksp")
alias(libs.plugins.ksp) apply true
}

group = "no.nav.pensjon.brev"
Expand All @@ -27,18 +22,16 @@ dependencies {
ksp(project(":template-model-generator"))


implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jacksonJsr310Version") {
implementation(libs.jackson.datatype.jsr310) {
because("we require deserialization/serialization of java.time.LocalDate")
}

// JUnit 5
testImplementation(platform("org.junit:junit-bom:$jupiterVersion"))
testImplementation("org.junit.jupiter:junit-jupiter")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
testImplementation("io.mockk:mockk:${mockkVersion}")
testImplementation(libs.bundles.junit)
testImplementation(libs.mockk)

testImplementation(testFixtures(project(":brevbaker")))
testImplementation("io.ktor:ktor-server-call-id:$ktorVersion")
testImplementation(libs.ktor.server.call.id)
}

tasks.test {
Expand Down
13 changes: 0 additions & 13 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,4 @@ org.gradle.caching=true

systemProp.javaTarget=21
systemProp.apiModelJavaTarget=21
systemProp.kotlinVersion=2.1.10
systemProp.ktorVersion=3.1.1
systemProp.kspVersion=1.0.31
logbackVersion=1.5.17
jupiterVersion=5.12.0
hamkrestVersion=1.8.0.1
logstashVersion=8.0
micrometerVersion=1.14.4
commonVersion=1.8.8
jacksonJsr310Version=2.18.3
mockkVersion=1.13.17
exposedVersion=0.60.0
flywayVersion=11.3.4
ksp.incremental=false
94 changes: 94 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
[versions]
kotlinVersion = "2.1.10"
kotlinKspVersion = "2.1.10-1.0.31" # TODO: Denne er kombinasjon av kotlinVersion og kspVersion. Har ikkje funne ein måte å slå saman desse to automatisk på
ktorVersion = "3.1.1"

assertJVersion = "3.27.3"
commonsCodecVersion = "1.18.0"
commonVersion = "1.8.8"
exposedVersion = "0.60.0"
flywayVersion = "11.3.4"
hamkrestVersion = "1.8.0.1"
hikariVersion = "6.2.1"
jacksonJsr310Version = "2.18.3"
jupiterVersion = "5.12.0"
kotlinxHtmlVersion = "0.12.0"
kspKctVersion = "0.7.0"
logbackVersion = "1.5.17"
logstashVersion = "8.0"
micrometerVersion = "1.14.4"
mockkVersion = "1.13.17"
postgresqlVersion = "42.7.3"
testcontainersPostgresqlVersion = "1.20.5"
unleashVersion = "10.0.2"

[plugins]
ktor = { id = "io.ktor.plugin", version.ref = "ktorVersion" }
ksp = { id = "com.google.devtools.ksp", version.ref = "kotlinKspVersion" }

[libraries]
brevbaker-common = { module = "no.nav.pensjon.brevbaker:brevbaker-api-model-common", version.ref = "commonVersion" }
commons-codec = { module = "commons-codec:commons-codec", version.ref = "commonsCodecVersion" }
hikari-cp = { module = "com.zaxxer:HikariCP", version.ref = "hikariVersion" }
kotlinx-html = { module = "org.jetbrains.kotlinx:kotlinx-html-jvm", version.ref = "kotlinxHtmlVersion" }
ksp-symbol-processing-api = { module = "com.google.devtools.ksp:symbol-processing-api", version.ref = "kotlinKspVersion"}
ksp-kotlin-compile-testing = { module = "dev.zacsweers.kctfork:ksp", version.ref = "kspKctVersion" }
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logbackVersion" }
logback-encoder = { module = "net.logstash.logback:logstash-logback-encoder", version.ref = "logstashVersion" }
jackson-datatype-jsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jacksonJsr310Version" }
micrometer-prometheus = { module = "io.micrometer:micrometer-registry-prometheus", version.ref = "micrometerVersion" }
postgresql = { module = "org.postgresql:postgresql", version.ref = "postgresqlVersion" }
unleash = { module = "io.getunleash:unleash-client-java", version.ref = "unleashVersion" }

# Ktor
ktor-client-auth = { module = "io.ktor:ktor-client-auth", version.ref = "ktorVersion" }
ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktorVersion" }
ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktorVersion" }
ktor-client-encoding = { module = "io.ktor:ktor-client-encoding", version.ref = "ktorVersion" }
ktor-client-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktorVersion" }
ktor-serialization-jackson = { module = "io.ktor:ktor-serialization-jackson", version.ref = "ktorVersion" }
ktor-server-auth = { module = "io.ktor:ktor-server-auth", version.ref = "ktorVersion" }
ktor-server-auth-jwt = { module = "io.ktor:ktor-server-auth-jwt", version.ref = "ktorVersion" }
ktor-server-caching-headers = { module = "io.ktor:ktor-server-caching-headers", version.ref = "ktorVersion" }
ktor-server-caching-headers-jvm = { module = "io.ktor:ktor-server-caching-headers-jvm", version.ref = "ktorVersion"}
ktor-server-call-id = { module = "io.ktor:ktor-server-call-id", version.ref = "ktorVersion" }
ktor-server-call-logging = { module = "io.ktor:ktor-server-call-logging", version.ref = "ktorVersion" }
ktor-server-compression-jvm = { module = "io.ktor:ktor-server-compression-jvm", version.ref = "ktorVersion" }
ktor-server-content-negotiation = { module = "io.ktor:ktor-server-content-negotiation", version.ref = "ktorVersion" }
ktor-server-core = { module = "io.ktor:ktor-server-core", version.ref = "ktorVersion" }
ktor-server-core-jvm = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktorVersion" }
ktor-server-cors = { module = "io.ktor:ktor-server-cors", version.ref = "ktorVersion" }
ktor-server-metrics = { module = "io.ktor:ktor-server-metrics", version.ref = "ktorVersion" }
ktor-server-metrics-micrometer = { module = "io.ktor:ktor-server-metrics-micrometer", version.ref = "ktorVersion" }
ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktorVersion" }
ktor-server-netty-jvm = { module = "io.ktor:ktor-server-netty-jvm", version.ref = "ktorVersion" }
ktor-server-request-validation = { module = "io.ktor:ktor-server-auth", version.ref = "ktorVersion" }
ktor-server-status-pages = { module = "io.ktor:ktor-server-status-pages", version.ref = "ktorVersion" }
ktor-server-swagger = { module = "io.ktor:ktor-server-swagger", version.ref = "ktorVersion" }
ktor-server-test-host = { module = "io.ktor:ktor-server-test-host", version.ref = "ktorVersion" }

# Exposed
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposedVersion" }
exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposedVersion" }
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposedVersion" }
exposed-json = { module = "org.jetbrains.exposed:exposed-json", version.ref = "exposedVersion" }
exposed-java-time = { module = "org.jetbrains.exposed:exposed-java-time", version.ref = "exposedVersion" }

# Flyway
flyway-core = { module = "org.flywaydb:flyway-core", version.ref = "flywayVersion" }
flyway-database-postgresql = { module = "org.flywaydb:flyway-database-postgresql", version.ref = "flywayVersion" }

# Test
assertJ = { module = "org.assertj:assertj-core", version.ref = "assertJVersion" }
hamkrest = { module = "com.natpryce:hamkrest", version.ref = "hamkrestVersion" }
junit-bom = { group = "org.junit", name = "junit-bom", version.ref = "jupiterVersion" }
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "jupiterVersion" }
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version = "1.12.0" }
kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlinVersion" }
mockk = { module = "io.mockk:mockk", version.ref = "mockkVersion" }
testcontainers-postgresql = { module = "org.testcontainers:postgresql", version.ref = "testcontainersPostgresqlVersion"}

[bundles]
junit = ["junit-jupiter", "junit-platform-launcher"]
logging = ["logback-classic", "logback-encoder"]
metrics = ["micrometer-prometheus", "ktor-server-metrics", "ktor-server-metrics-micrometer"]
44 changes: 16 additions & 28 deletions pdf-bygger/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,19 +1,11 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

val javaTarget: String by System.getProperties()
val ktorVersion: String by System.getProperties()
val kotlinVersion: String by System.getProperties()
val commonVersion: String by project
val hamkrestVersion: String by project
val logbackVersion: String by project
val logstashVersion: String by project
val micrometerVersion: String by project
val jacksonJsr310Version: String by project

plugins {
kotlin("jvm")
application
id("io.ktor.plugin")
alias(libs.plugins.ktor) apply true
}

group="no.nav.pensjon.brev"
Expand All @@ -36,32 +28,28 @@ tasks {

dependencies {
implementation(kotlin("stdlib"))
implementation("ch.qos.logback:logback-classic:$logbackVersion")
implementation("io.ktor:ktor-serialization-jackson:$ktorVersion")
implementation("io.ktor:ktor-server-call-id:$ktorVersion")
implementation("io.ktor:ktor-server-call-logging:$ktorVersion")
implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion")
implementation("io.ktor:ktor-server-core:$ktorVersion")
implementation("io.ktor:ktor-server-netty:$ktorVersion")
implementation("io.ktor:ktor-server-status-pages:$ktorVersion")
implementation("net.logstash.logback:logstash-logback-encoder:$logstashVersion")
implementation("io.ktor:ktor-server-compression-jvm:$ktorVersion")
implementation(libs.bundles.logging)
implementation(libs.ktor.serialization.jackson)
implementation(libs.ktor.server.call.id)
implementation(libs.ktor.server.call.logging)
implementation(libs.ktor.server.content.negotiation)
implementation(libs.ktor.server.core)
implementation(libs.ktor.server.netty)
implementation(libs.ktor.server.status.pages)
implementation(libs.ktor.server.compression.jvm)

// Metrics
implementation("io.ktor:ktor-server-metrics:$ktorVersion")
implementation("io.ktor:ktor-server-metrics-micrometer:$ktorVersion")
implementation("io.micrometer:micrometer-registry-prometheus:$micrometerVersion")
implementation(libs.bundles.metrics)

implementation(project(":brevbaker-dsl"))
implementation("no.nav.pensjon.brevbaker:brevbaker-api-model-common:$commonVersion")
implementation(libs.brevbaker.common)

implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jacksonJsr310Version") {
implementation(libs.jackson.datatype.jsr310) {
because("we require deserialization/serialization of java.time.LocalDate")
}

testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlinVersion")
testImplementation("com.natpryce:hamkrest:$hamkrestVersion")
testImplementation("io.ktor:ktor-server-test-host:$ktorVersion")
testImplementation(libs.kotlin.test.junit)
testImplementation(libs.hamkrest)
testImplementation(libs.ktor.server.test.host)

testImplementation(project(":brevbaker"))
testImplementation(testFixtures(project(":brevbaker")))
Expand Down
6 changes: 2 additions & 4 deletions pensjon-brevbaker-api-model/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

val apiModelJavaTarget: String by System.getProperties()
val commonVersion: String by project
val kotlinVersion: String by System.getProperties()

plugins {
kotlin("jvm")
Expand All @@ -23,8 +21,8 @@ repositories {

dependencies {
compileOnly(kotlin("stdlib"))
api("no.nav.pensjon.brevbaker:brevbaker-api-model-common:$commonVersion")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlinVersion")
api(libs.brevbaker.common)
testImplementation(libs.kotlin.test.junit)
}

publishing {
Expand Down
Loading