From 4183bb4b1266f18650df0b6570616958f84d121e Mon Sep 17 00:00:00 2001 From: zero88 Date: Sat, 20 Apr 2024 13:59:29 +0700 Subject: [PATCH] feat(gradle): switch to java17 --- .github/workflows/jooqx.yml | 4 ++- .github/workflows/jpa.yml | 2 ++ .github/workflows/rsql.yml | 2 ++ .sdkmanrc | 2 +- build.gradle.kts | 43 ++++++++++++++++++++---- buildSrc/src/main/kotlin/Dependencies.kt | 3 +- gradle.properties | 6 ++++ jpa-ext/gradle.properties | 4 +++ rsql/core/gradle.properties | 4 +++ rsql/jooq/gradle.properties | 6 +++- 10 files changed, 64 insertions(+), 12 deletions(-) diff --git a/.github/workflows/jooqx.yml b/.github/workflows/jooqx.yml index 17695ce2..b415353b 100644 --- a/.github/workflows/jooqx.yml +++ b/.github/workflows/jooqx.yml @@ -53,6 +53,7 @@ jobs: semanticVersion: ${{ needs.context.outputs.semanticVersion }} hashVersion: ${{ needs.context.outputs.commitId }} javaVersion: ${{ matrix.java }} + buildArgs: 'clean build -PjvmRuntime=${{ matrix.java }}' analysis: uses: zero88/shared-ghactions/.github/workflows/gradle-analysis.yml@main @@ -74,7 +75,7 @@ jobs: semanticVersion: ${{ needs.context.outputs.semanticVersion }} hashVersion: ${{ needs.context.outputs.commitId }} javaVersion: ${{ matrix.java }} - buildArgs: 'clean integtest:itTest -PitProfile=${{ matrix.itProfile }}' + buildArgs: 'clean integtest:itTest -PitProfile=${{ matrix.itProfile }} -PjvmRuntime=${{ matrix.java }}' sonarqube: ${{ contains(matrix.sonarProfile, matrix.itProfile) && matrix.java == '17' }} sonarProps: '-PskipItTest=true' # to not run integtest again secrets: @@ -91,6 +92,7 @@ jobs: semanticVersion: ${{ needs.context.outputs.semanticVersion }} hashVersion: ${{ needs.context.outputs.commitId }} isRelease: ${{ needs.context.outputs.isRelease }} + javaVersion: 17 secrets: ossrhUser: ${{ secrets.OSS_SONATYPE_USER }} ossrhToken: ${{ secrets.OSS_SONATYPE_PASSWORD }} diff --git a/.github/workflows/jpa.yml b/.github/workflows/jpa.yml index fb7e152f..ae4de260 100644 --- a/.github/workflows/jpa.yml +++ b/.github/workflows/jpa.yml @@ -51,6 +51,7 @@ jobs: semanticVersion: ${{ needs.context.outputs.semanticVersion }} hashVersion: ${{ needs.context.outputs.commitId }} javaVersion: ${{ matrix.java }} + buildArgs: 'clean build -PjvmRuntime=${{ matrix.java }}' publish: needs: [ context, build ] @@ -62,6 +63,7 @@ jobs: semanticVersion: ${{ needs.context.outputs.semanticVersion }} hashVersion: ${{ needs.context.outputs.commitId }} isRelease: ${{ needs.context.outputs.isRelease }} + javaVersion: 8 secrets: ossrhUser: ${{ secrets.OSS_SONATYPE_USER }} ossrhToken: ${{ secrets.OSS_SONATYPE_PASSWORD }} diff --git a/.github/workflows/rsql.yml b/.github/workflows/rsql.yml index 2350ab47..33212e80 100644 --- a/.github/workflows/rsql.yml +++ b/.github/workflows/rsql.yml @@ -52,6 +52,7 @@ jobs: semanticVersion: ${{ needs.context.outputs.semanticVersion }} hashVersion: ${{ needs.context.outputs.commitId }} javaVersion: ${{ matrix.java }} + buildArgs: 'clean test jacocoTestReport -PjvmRuntime=${{ matrix.java }}' sonarqube: ${{ matrix.java == '17' && matrix.os == 'ubuntu-latest' }} sonarProps: '-Dsonar.projectKey=zero88_rsql' secrets: @@ -100,6 +101,7 @@ jobs: semanticVersion: ${{ needs.context.outputs.semanticVersion }} hashVersion: ${{ needs.context.outputs.commitId }} isRelease: ${{ needs.context.outputs.isRelease }} + javaVersion: 8 secrets: ossrhUser: ${{ secrets.OSS_SONATYPE_USER }} ossrhToken: ${{ secrets.OSS_SONATYPE_PASSWORD }} diff --git a/.sdkmanrc b/.sdkmanrc index b8a16ed8..2d44220b 100644 --- a/.sdkmanrc +++ b/.sdkmanrc @@ -1,3 +1,3 @@ # Enable auto-env through the sdkman_auto_env config # Add key=value pairs of SDKs to use below -java=11.0.22-tem +java=17.0.10-tem diff --git a/build.gradle.kts b/build.gradle.kts index f5d4638b..c5fdce16 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,6 +18,11 @@ plugins { project.ext.set("baseName", "jooqx") project.ext.set(NexusConfig.NEXUS_VERSION_KEY, NexusVersion.BEFORE_2021_02_24) +val skipPublish = (gradle as ExtensionAware).extensions["SKIP_PUBLISH"] as Array<*> + +jacoco { + toolVersion = "0.8.11" +} allprojects { group = "io.github.zero88" @@ -29,7 +34,6 @@ allprojects { mavenCentral() } - val skipPublish = (gradle as ExtensionAware).extensions["SKIP_PUBLISH"] as Array<*> sonarqube { isSkipProject = project.path in skipPublish } @@ -44,6 +48,16 @@ allprojects { subprojects { apply(plugin = PlayioPlugin.oss) + val jvmRuntime = prop(project, "jvmRuntime") as String + val jvmRelease = prop(project, "jvmRelease") as String + val artifactClassifier = when (jvmRuntime) { + "8" -> if (jvmRelease == "8") "" else "-jvm8" + "11" -> if (jvmRelease == "11") "" else "-jvm11" + "17" -> if (jvmRelease == "17") "" else "-jvm17" + "21" -> if (jvmRelease == "21") "" else "-jvm21" + else -> throw IllegalArgumentException("Unknown version $jvmRuntime") + } + dependencies { compileOnly(UtilLibs.jetbrainsAnnotations) @@ -62,10 +76,29 @@ subprojects { } } - jacoco { - toolVersion = "0.8.11" + java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(jvmRuntime)) + } } + tasks { + withType { + enabled = project != rootProject && project.path !in skipPublish + } + + withType { + archiveClassifier.set( + when (name) { + "testFixturesJar" -> "test-fixtures$artifactClassifier" + "javadocJar" -> "javadoc$artifactClassifier" + "sourcesJar" -> "sources$artifactClassifier" + else -> artifactClassifier.replace("-", "") + } + ) + println(archiveClassifier.get()) + } + } } rootProject.apply { @@ -78,10 +111,6 @@ rootProject.apply { } } - jacoco { - toolVersion = "0.8.11" - } - tasks { // exclude jacoco report: https://github.com/gradle/gradle/issues/13013 withType { diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index ed61086f..a0abce18 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -180,8 +180,7 @@ object DatabaseContainer { fun findImage(project: Project): String { val container = Containers.valueOf(project.name).container - val version = project.findProperty("dbVersion"); - val jdbcDbImage: String = when (version) { + val jdbcDbImage: String = when (val version = project.findProperty("dbVersion")) { in container.supportedVersions -> container.defaultImage.replaceAfter(":", "$version") else -> container.defaultImage } diff --git a/gradle.properties b/gradle.properties index 54f4150c..56019beb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,6 +2,12 @@ org.gradle.caching=true org.gradle.parallel=true +# JVM properties ----------------------------- +# Defines the runtime java version that is used to build the current project +jvmRuntime=17 +# Defines the default java baseline version to release the current project +jvmRelease=17 + # Project properties -------------------------- title=jOOQ.x description=Reactive SQL with Vert.x and jOOQ diff --git a/jpa-ext/gradle.properties b/jpa-ext/gradle.properties index 9c180cef..49d285d8 100644 --- a/jpa-ext/gradle.properties +++ b/jpa-ext/gradle.properties @@ -1,3 +1,7 @@ +# JVM properties +jvmRuntime=8 +jvmRelease=8 + title=JPA Extension description=JPA Extension version=1.0.0 diff --git a/rsql/core/gradle.properties b/rsql/core/gradle.properties index 967ebe10..a3f74a78 100644 --- a/rsql/core/gradle.properties +++ b/rsql/core/gradle.properties @@ -1,2 +1,6 @@ +# JVM properties +jvmRuntime=8 +jvmRelease=8 + title=RSQL Core description=RSQL core diff --git a/rsql/jooq/gradle.properties b/rsql/jooq/gradle.properties index d7866083..651f9556 100644 --- a/rsql/jooq/gradle.properties +++ b/rsql/jooq/gradle.properties @@ -1,2 +1,6 @@ +# JVM properties +jvmRuntime=17 +jvmRelease=17 + title=jOOQ RSQL -description=jOOQ RSQL \ No newline at end of file +description=jOOQ RSQL