From e63ca6e0a1641a8764715b2030cf6c534c576caf Mon Sep 17 00:00:00 2001 From: Toshihiro Nakamura Date: Sat, 15 Feb 2025 07:35:40 +0900 Subject: [PATCH 1/3] Refactor to use Gradle version catalogs for dependencies. --- build.gradle.kts | 33 +++++++++++++++++--------------- dao-style-basic/build.gradle.kts | 9 +-------- dao-style-file/build.gradle.kts | 7 ------- dao-style-text/build.gradle.kts | 7 ------- dsl-style-java/build.gradle.kts | 7 ------- gradle.properties | 2 -- gradle/libs.versions.toml | 22 +++++++++++++++++++++ jpms-java/build.gradle.kts | 7 ------- 8 files changed, 41 insertions(+), 53 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle.kts b/build.gradle.kts index 9ec7af09..e2e46bae 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,15 +1,19 @@ plugins { java - id("com.diffplug.eclipse.apt") version "4.2.0" - id("com.diffplug.spotless") version "7.0.2" - id("org.domaframework.doma.compile") version "3.0.1" + alias(libs.plugins.eclipse.apt) + alias(libs.plugins.spotless) + alias(libs.plugins.doma.compile) } +// Retain a reference to rootProject.libs to make the version catalog accessible within allprojects and subprojects. +// See https://github.com/gradle/gradle/issues/16708 +val catalog = libs + subprojects { apply(plugin = "java") - apply(plugin = "com.diffplug.eclipse.apt") - apply(plugin = "com.diffplug.spotless") - apply(plugin = "org.domaframework.doma.compile") + apply(plugin = catalog.plugins.eclipse.apt.get().pluginId) + apply(plugin = catalog.plugins.spotless.get().pluginId) + apply(plugin = catalog.plugins.doma.compile.get().pluginId) java { toolchain { @@ -34,14 +38,13 @@ subprojects { } dependencies { - val domaVersion: String by project - annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}") - implementation("org.seasar.doma:doma-core:${domaVersion}") - implementation("org.seasar.doma:doma-slf4j:${domaVersion}") - runtimeOnly("ch.qos.logback:logback-classic:1.5.16") - runtimeOnly("com.h2database:h2:2.3.232") - testImplementation("org.junit.jupiter:junit-jupiter-api:5.11.4") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.11.4") + annotationProcessor(catalog.doma.processor) + implementation(catalog.doma.core) + implementation(catalog.doma.slf4j) + runtimeOnly(catalog.logback.classic) + runtimeOnly(catalog.jdbc.h2) + testImplementation(catalog.junit.jupiter.api) + testRuntimeOnly(catalog.junit.jupiter.engine) } eclipse { @@ -68,7 +71,7 @@ subprojects { spotless { java { - googleJavaFormat("1.23.0") + googleJavaFormat(catalog.google.java.format.get().version) } } } diff --git a/dao-style-basic/build.gradle.kts b/dao-style-basic/build.gradle.kts index 48f4bc5d..92206777 100644 --- a/dao-style-basic/build.gradle.kts +++ b/dao-style-basic/build.gradle.kts @@ -6,14 +6,7 @@ tasks { compileJava { val aptOptions = extensions.getByType() aptOptions.processorArgs = mapOf( - "doma.domain.converters" to "example.dao_style_basic.domain.DomainConverterProvider" + "doma.domain.converters" to "example.dao_style_basic.domain.DomainConverterProvider" ) } } - -dependencies { - val domaVersion: String by project - annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}") - implementation("org.seasar.doma:doma-core:${domaVersion}") - implementation("org.seasar.doma:doma-slf4j:${domaVersion}") -} diff --git a/dao-style-file/build.gradle.kts b/dao-style-file/build.gradle.kts index 0567188d..2e5ce86a 100644 --- a/dao-style-file/build.gradle.kts +++ b/dao-style-file/build.gradle.kts @@ -10,10 +10,3 @@ tasks { ) } } - -dependencies { - val domaVersion: String by project - annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}") - implementation("org.seasar.doma:doma-core:${domaVersion}") - implementation("org.seasar.doma:doma-slf4j:${domaVersion}") -} diff --git a/dao-style-text/build.gradle.kts b/dao-style-text/build.gradle.kts index ce6f3d4c..cf0d213b 100644 --- a/dao-style-text/build.gradle.kts +++ b/dao-style-text/build.gradle.kts @@ -11,10 +11,3 @@ tasks { } } -dependencies { - val domaVersion: String by project - annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}") - implementation("org.seasar.doma:doma-core:${domaVersion}") - implementation("org.seasar.doma:doma-slf4j:${domaVersion}") -} - diff --git a/dsl-style-java/build.gradle.kts b/dsl-style-java/build.gradle.kts index 2b2e3f75..08ca8a08 100644 --- a/dsl-style-java/build.gradle.kts +++ b/dsl-style-java/build.gradle.kts @@ -10,10 +10,3 @@ tasks { ) } } - -dependencies { - val domaVersion: String by project - annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}") - implementation("org.seasar.doma:doma-core:${domaVersion}") - implementation("org.seasar.doma:doma-slf4j:${domaVersion}") -} diff --git a/gradle.properties b/gradle.properties index 68ea36f9..4aac8bc1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,3 @@ -domaVersion=3.4.0 - # https://github.com/diffplug/spotless/issues/834 org.gradle.jvmargs=-Dfile.encoding=UTF-8 \ --add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..94f6e17c --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,22 @@ +[versions] +doma = "3.4.0" +junit = "5.11.4" + +[libraries] +doma-core = { module = "org.seasar.doma:doma-core", version.ref = "doma"} +doma-processor = { module = "org.seasar.doma:doma-processor", version.ref = "doma"} +doma-slf4j = { module = "org.seasar.doma:doma-slf4j", version.ref = "doma"} + +jdbc-h2 = { module = "com.h2database:h2", version = "2.3.232" } + +logback-classic = { module = "ch.qos.logback:logback-classic", version = "1.5.16" } + +junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" } +junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" } + +google-java-format = { module = "com.google.googlejavaformat:google-java-format", version = "1.25.2" } + +[plugins] +spotless = { id = "com.diffplug.spotless", version = "7.0.2" } +doma-compile = { id = "org.domaframework.doma.compile", version = "3.0.1" } +eclipse-apt = { id = "com.diffplug.eclipse.apt", version = "4.2.0" } diff --git a/jpms-java/build.gradle.kts b/jpms-java/build.gradle.kts index c6ee6a54..42f05f13 100644 --- a/jpms-java/build.gradle.kts +++ b/jpms-java/build.gradle.kts @@ -12,13 +12,6 @@ tasks { } } -dependencies { - val domaVersion: String by project - annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}") - implementation("org.seasar.doma:doma-core:${domaVersion}") - implementation("org.seasar.doma:doma-slf4j:${domaVersion}") -} - application { mainClass.set("example.jpms_java.Main") } From e421f267226a4419f46ae8fd0edf9f29643d66ab Mon Sep 17 00:00:00 2001 From: Toshihiro Nakamura Date: Sat, 15 Feb 2025 07:37:22 +0900 Subject: [PATCH 2/3] Add the Gradle setup step --- .github/workflows/gradle.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 7a5a6a26..1f44fb74 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -20,10 +20,11 @@ jobs: distribution: 'zulu' java-version: 17 + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4.3.0 + - name: Assemble and Check - uses: gradle/gradle-build-action@v3 - with: - arguments: assemble check + run: ./gradlew assemble check - name: Upload reports if: failure() From 3316eccbd0d03305aba519f7df7a9e4f4108618a Mon Sep 17 00:00:00 2001 From: Toshihiro Nakamura Date: Sat, 15 Feb 2025 07:51:25 +0900 Subject: [PATCH 3/3] Format build.gradle.kts --- .editorconfig | 16 ++++++++++ build.gradle.kts | 50 +++++++++++++++++++++++--------- dao-style-basic/build.gradle.kts | 7 +++-- dao-style-file/build.gradle.kts | 7 +++-- dao-style-text/build.gradle.kts | 8 ++--- dsl-style-java/build.gradle.kts | 7 +++-- gradle/libs.versions.toml | 1 + jpms-java/build.gradle.kts | 7 +++-- 8 files changed, 74 insertions(+), 29 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..f24b4f35 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +[*.{kt,kts}] + +ktlint_standard_blank-line-before-declaration = disabled +ktlint_standard_chain-method-continuation = disabled +ktlint_standard_class-naming = disabled +ktlint_standard_class-signature = disabled +ktlint_standard_function-expression-body = disabled +ktlint_standard_function-naming = disabled +ktlint_standard_function-signature = disabled +ktlint_standard_if-else-wrapping = disabled +ktlint_standard_max-line-length = disabled +ktlint_standard_multiline-expression-wrapping = disabled +ktlint_standard_no-blank-line-in-list = disabled +ktlint_standard_no-empty-first-line-in-class-body = disabled +ktlint_standard_property-naming = disabled +ktlint_standard_trailing-comma-on-call-site = disabled diff --git a/build.gradle.kts b/build.gradle.kts index e2e46bae..bdbc9ae2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,6 +9,40 @@ plugins { // See https://github.com/gradle/gradle/issues/16708 val catalog = libs +allprojects { + apply(plugin = "base") + apply(plugin = catalog.plugins.spotless.get().pluginId) + + repositories { + mavenCentral() + mavenLocal() + maven(url = "https://oss.sonatype.org/content/repositories/snapshots/") + } + + spotless { + lineEndings = com.diffplug.spotless.LineEnding.UNIX + java { + googleJavaFormat(catalog.google.java.format.get().version) + } + kotlinGradle { + ktlint(catalog.ktlint.get().version) + } + format("misc") { + target("**/*.gitignore", "**/*.md") + targetExclude("**/bin/**", "**/build/**") + leadingTabsToSpaces() + trimTrailingWhitespace() + endWithNewline() + } + } + + tasks { + build { + dependsOn(spotlessApply) + } + } +} + subprojects { apply(plugin = "java") apply(plugin = catalog.plugins.eclipse.apt.get().pluginId) @@ -31,12 +65,6 @@ subprojects { } } - repositories { - mavenCentral() - mavenLocal() - maven(url = "https://oss.sonatype.org/content/repositories/snapshots/") - } - dependencies { annotationProcessor(catalog.doma.processor) implementation(catalog.doma.core) @@ -52,7 +80,9 @@ subprojects { file { whenMerged { val classpath = this as org.gradle.plugins.ide.eclipse.model.Classpath - val folder = org.gradle.plugins.ide.eclipse.model.SourceFolder(".apt_generated", "bin/main") + val folder = + org.gradle.plugins.ide.eclipse.model + .SourceFolder(".apt_generated", "bin/main") classpath.entries.add(folder) val dir = file(folder.path) if (!dir.exists()) { @@ -68,10 +98,4 @@ subprojects { // Reset all Eclipse settings when "Refresh Gradle Project" is executed synchronizationTasks("cleanEclipse", "eclipse") } - - spotless { - java { - googleJavaFormat(catalog.google.java.format.get().version) - } - } } diff --git a/dao-style-basic/build.gradle.kts b/dao-style-basic/build.gradle.kts index 92206777..aa3f0c6f 100644 --- a/dao-style-basic/build.gradle.kts +++ b/dao-style-basic/build.gradle.kts @@ -5,8 +5,9 @@ plugins { tasks { compileJava { val aptOptions = extensions.getByType() - aptOptions.processorArgs = mapOf( - "doma.domain.converters" to "example.dao_style_basic.domain.DomainConverterProvider" - ) + aptOptions.processorArgs = + mapOf( + "doma.domain.converters" to "example.dao_style_basic.domain.DomainConverterProvider", + ) } } diff --git a/dao-style-file/build.gradle.kts b/dao-style-file/build.gradle.kts index 2e5ce86a..bcba03e3 100644 --- a/dao-style-file/build.gradle.kts +++ b/dao-style-file/build.gradle.kts @@ -5,8 +5,9 @@ plugins { tasks { compileJava { val aptOptions = extensions.getByType() - aptOptions.processorArgs = mapOf( - "doma.domain.converters" to "example.dao_style_file.domain.DomainConverterProvider" - ) + aptOptions.processorArgs = + mapOf( + "doma.domain.converters" to "example.dao_style_file.domain.DomainConverterProvider", + ) } } diff --git a/dao-style-text/build.gradle.kts b/dao-style-text/build.gradle.kts index cf0d213b..9a728ff4 100644 --- a/dao-style-text/build.gradle.kts +++ b/dao-style-text/build.gradle.kts @@ -5,9 +5,9 @@ plugins { tasks { compileJava { val aptOptions = extensions.getByType() - aptOptions.processorArgs = mapOf( - "doma.domain.converters" to "example.dao_style_text.domain.DomainConverterProvider" - ) + aptOptions.processorArgs = + mapOf( + "doma.domain.converters" to "example.dao_style_text.domain.DomainConverterProvider", + ) } } - diff --git a/dsl-style-java/build.gradle.kts b/dsl-style-java/build.gradle.kts index 08ca8a08..c572e6a0 100644 --- a/dsl-style-java/build.gradle.kts +++ b/dsl-style-java/build.gradle.kts @@ -5,8 +5,9 @@ plugins { tasks { compileJava { val aptOptions = extensions.getByType() - aptOptions.processorArgs = mapOf( - "doma.domain.converters" to "example.dsl_style_java.domain.DomainConverterProvider" - ) + aptOptions.processorArgs = + mapOf( + "doma.domain.converters" to "example.dsl_style_java.domain.DomainConverterProvider", + ) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 94f6e17c..dffcb72a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,6 +15,7 @@ junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.re junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" } google-java-format = { module = "com.google.googlejavaformat:google-java-format", version = "1.25.2" } +ktlint = { module = "com.pinterest.ktlint:ktlint-cli", version = "1.5.0" } [plugins] spotless = { id = "com.diffplug.spotless", version = "7.0.2" } diff --git a/jpms-java/build.gradle.kts b/jpms-java/build.gradle.kts index 42f05f13..815d3f33 100644 --- a/jpms-java/build.gradle.kts +++ b/jpms-java/build.gradle.kts @@ -6,9 +6,10 @@ plugins { tasks { compileJava { val aptOptions = extensions.getByType() - aptOptions.processorArgs = mapOf( - "doma.domain.converters" to "example.jpms_java.domain.DomainConverterProvider" - ) + aptOptions.processorArgs = + mapOf( + "doma.domain.converters" to "example.jpms_java.domain.DomainConverterProvider", + ) } }