Skip to content

Commit 4cc40db

Browse files
authored
Add Gradle setup and version catalogs (#316)
* Refactor to use Gradle version catalogs for dependencies. * Add the Gradle setup step * Format build.gradle.kts
1 parent 6ba0f54 commit 4cc40db

File tree

10 files changed

+117
-83
lines changed

10 files changed

+117
-83
lines changed

.editorconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[*.{kt,kts}]
2+
3+
ktlint_standard_blank-line-before-declaration = disabled
4+
ktlint_standard_chain-method-continuation = disabled
5+
ktlint_standard_class-naming = disabled
6+
ktlint_standard_class-signature = disabled
7+
ktlint_standard_function-expression-body = disabled
8+
ktlint_standard_function-naming = disabled
9+
ktlint_standard_function-signature = disabled
10+
ktlint_standard_if-else-wrapping = disabled
11+
ktlint_standard_max-line-length = disabled
12+
ktlint_standard_multiline-expression-wrapping = disabled
13+
ktlint_standard_no-blank-line-in-list = disabled
14+
ktlint_standard_no-empty-first-line-in-class-body = disabled
15+
ktlint_standard_property-naming = disabled
16+
ktlint_standard_trailing-comma-on-call-site = disabled

.github/workflows/gradle.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@ jobs:
2020
distribution: 'zulu'
2121
java-version: 17
2222

23+
- name: Set up Gradle
24+
uses: gradle/actions/[email protected]
25+
2326
- name: Assemble and Check
24-
uses: gradle/gradle-build-action@v3
25-
with:
26-
arguments: assemble check
27+
run: ./gradlew assemble check
2728

2829
- name: Upload reports
2930
if: failure()

build.gradle.kts

Lines changed: 54 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,53 @@
11
plugins {
22
java
3-
id("com.diffplug.eclipse.apt") version "4.2.0"
4-
id("com.diffplug.spotless") version "7.0.2"
5-
id("org.domaframework.doma.compile") version "3.0.1"
3+
alias(libs.plugins.eclipse.apt)
4+
alias(libs.plugins.spotless)
5+
alias(libs.plugins.doma.compile)
6+
}
7+
8+
// Retain a reference to rootProject.libs to make the version catalog accessible within allprojects and subprojects.
9+
// See https://github.com/gradle/gradle/issues/16708
10+
val catalog = libs
11+
12+
allprojects {
13+
apply(plugin = "base")
14+
apply(plugin = catalog.plugins.spotless.get().pluginId)
15+
16+
repositories {
17+
mavenCentral()
18+
mavenLocal()
19+
maven(url = "https://oss.sonatype.org/content/repositories/snapshots/")
20+
}
21+
22+
spotless {
23+
lineEndings = com.diffplug.spotless.LineEnding.UNIX
24+
java {
25+
googleJavaFormat(catalog.google.java.format.get().version)
26+
}
27+
kotlinGradle {
28+
ktlint(catalog.ktlint.get().version)
29+
}
30+
format("misc") {
31+
target("**/*.gitignore", "**/*.md")
32+
targetExclude("**/bin/**", "**/build/**")
33+
leadingTabsToSpaces()
34+
trimTrailingWhitespace()
35+
endWithNewline()
36+
}
37+
}
38+
39+
tasks {
40+
build {
41+
dependsOn(spotlessApply)
42+
}
43+
}
644
}
745

846
subprojects {
947
apply(plugin = "java")
10-
apply(plugin = "com.diffplug.eclipse.apt")
11-
apply(plugin = "com.diffplug.spotless")
12-
apply(plugin = "org.domaframework.doma.compile")
48+
apply(plugin = catalog.plugins.eclipse.apt.get().pluginId)
49+
apply(plugin = catalog.plugins.spotless.get().pluginId)
50+
apply(plugin = catalog.plugins.doma.compile.get().pluginId)
1351

1452
java {
1553
toolchain {
@@ -27,29 +65,24 @@ subprojects {
2765
}
2866
}
2967

30-
repositories {
31-
mavenCentral()
32-
mavenLocal()
33-
maven(url = "https://oss.sonatype.org/content/repositories/snapshots/")
34-
}
35-
3668
dependencies {
37-
val domaVersion: String by project
38-
annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}")
39-
implementation("org.seasar.doma:doma-core:${domaVersion}")
40-
implementation("org.seasar.doma:doma-slf4j:${domaVersion}")
41-
runtimeOnly("ch.qos.logback:logback-classic:1.5.16")
42-
runtimeOnly("com.h2database:h2:2.3.232")
43-
testImplementation("org.junit.jupiter:junit-jupiter-api:5.11.4")
44-
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.11.4")
69+
annotationProcessor(catalog.doma.processor)
70+
implementation(catalog.doma.core)
71+
implementation(catalog.doma.slf4j)
72+
runtimeOnly(catalog.logback.classic)
73+
runtimeOnly(catalog.jdbc.h2)
74+
testImplementation(catalog.junit.jupiter.api)
75+
testRuntimeOnly(catalog.junit.jupiter.engine)
4576
}
4677

4778
eclipse {
4879
classpath {
4980
file {
5081
whenMerged {
5182
val classpath = this as org.gradle.plugins.ide.eclipse.model.Classpath
52-
val folder = org.gradle.plugins.ide.eclipse.model.SourceFolder(".apt_generated", "bin/main")
83+
val folder =
84+
org.gradle.plugins.ide.eclipse.model
85+
.SourceFolder(".apt_generated", "bin/main")
5386
classpath.entries.add(folder)
5487
val dir = file(folder.path)
5588
if (!dir.exists()) {
@@ -65,10 +98,4 @@ subprojects {
6598
// Reset all Eclipse settings when "Refresh Gradle Project" is executed
6699
synchronizationTasks("cleanEclipse", "eclipse")
67100
}
68-
69-
spotless {
70-
java {
71-
googleJavaFormat("1.23.0")
72-
}
73-
}
74101
}

dao-style-basic/build.gradle.kts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,9 @@ plugins {
55
tasks {
66
compileJava {
77
val aptOptions = extensions.getByType<com.diffplug.gradle.eclipse.apt.AptPlugin.AptOptions>()
8-
aptOptions.processorArgs = mapOf(
9-
"doma.domain.converters" to "example.dao_style_basic.domain.DomainConverterProvider"
10-
)
8+
aptOptions.processorArgs =
9+
mapOf(
10+
"doma.domain.converters" to "example.dao_style_basic.domain.DomainConverterProvider",
11+
)
1112
}
1213
}
13-
14-
dependencies {
15-
val domaVersion: String by project
16-
annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}")
17-
implementation("org.seasar.doma:doma-core:${domaVersion}")
18-
implementation("org.seasar.doma:doma-slf4j:${domaVersion}")
19-
}

dao-style-file/build.gradle.kts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,9 @@ plugins {
55
tasks {
66
compileJava {
77
val aptOptions = extensions.getByType<com.diffplug.gradle.eclipse.apt.AptPlugin.AptOptions>()
8-
aptOptions.processorArgs = mapOf(
9-
"doma.domain.converters" to "example.dao_style_file.domain.DomainConverterProvider"
10-
)
8+
aptOptions.processorArgs =
9+
mapOf(
10+
"doma.domain.converters" to "example.dao_style_file.domain.DomainConverterProvider",
11+
)
1112
}
1213
}
13-
14-
dependencies {
15-
val domaVersion: String by project
16-
annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}")
17-
implementation("org.seasar.doma:doma-core:${domaVersion}")
18-
implementation("org.seasar.doma:doma-slf4j:${domaVersion}")
19-
}

dao-style-text/build.gradle.kts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,9 @@ plugins {
55
tasks {
66
compileJava {
77
val aptOptions = extensions.getByType<com.diffplug.gradle.eclipse.apt.AptPlugin.AptOptions>()
8-
aptOptions.processorArgs = mapOf(
9-
"doma.domain.converters" to "example.dao_style_text.domain.DomainConverterProvider"
10-
)
8+
aptOptions.processorArgs =
9+
mapOf(
10+
"doma.domain.converters" to "example.dao_style_text.domain.DomainConverterProvider",
11+
)
1112
}
1213
}
13-
14-
dependencies {
15-
val domaVersion: String by project
16-
annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}")
17-
implementation("org.seasar.doma:doma-core:${domaVersion}")
18-
implementation("org.seasar.doma:doma-slf4j:${domaVersion}")
19-
}
20-

dsl-style-java/build.gradle.kts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,9 @@ plugins {
55
tasks {
66
compileJava {
77
val aptOptions = extensions.getByType<com.diffplug.gradle.eclipse.apt.AptPlugin.AptOptions>()
8-
aptOptions.processorArgs = mapOf(
9-
"doma.domain.converters" to "example.dsl_style_java.domain.DomainConverterProvider"
10-
)
8+
aptOptions.processorArgs =
9+
mapOf(
10+
"doma.domain.converters" to "example.dsl_style_java.domain.DomainConverterProvider",
11+
)
1112
}
1213
}
13-
14-
dependencies {
15-
val domaVersion: String by project
16-
annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}")
17-
implementation("org.seasar.doma:doma-core:${domaVersion}")
18-
implementation("org.seasar.doma:doma-slf4j:${domaVersion}")
19-
}

gradle.properties

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
domaVersion=3.4.0
2-
31
# https://github.com/diffplug/spotless/issues/834
42
org.gradle.jvmargs=-Dfile.encoding=UTF-8 \
53
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \

gradle/libs.versions.toml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[versions]
2+
doma = "3.4.0"
3+
junit = "5.11.4"
4+
5+
[libraries]
6+
doma-core = { module = "org.seasar.doma:doma-core", version.ref = "doma"}
7+
doma-processor = { module = "org.seasar.doma:doma-processor", version.ref = "doma"}
8+
doma-slf4j = { module = "org.seasar.doma:doma-slf4j", version.ref = "doma"}
9+
10+
jdbc-h2 = { module = "com.h2database:h2", version = "2.3.232" }
11+
12+
logback-classic = { module = "ch.qos.logback:logback-classic", version = "1.5.16" }
13+
14+
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
15+
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" }
16+
17+
google-java-format = { module = "com.google.googlejavaformat:google-java-format", version = "1.25.2" }
18+
ktlint = { module = "com.pinterest.ktlint:ktlint-cli", version = "1.5.0" }
19+
20+
[plugins]
21+
spotless = { id = "com.diffplug.spotless", version = "7.0.2" }
22+
doma-compile = { id = "org.domaframework.doma.compile", version = "3.0.1" }
23+
eclipse-apt = { id = "com.diffplug.eclipse.apt", version = "4.2.0" }

jpms-java/build.gradle.kts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,13 @@ plugins {
66
tasks {
77
compileJava {
88
val aptOptions = extensions.getByType<com.diffplug.gradle.eclipse.apt.AptPlugin.AptOptions>()
9-
aptOptions.processorArgs = mapOf(
10-
"doma.domain.converters" to "example.jpms_java.domain.DomainConverterProvider"
11-
)
9+
aptOptions.processorArgs =
10+
mapOf(
11+
"doma.domain.converters" to "example.jpms_java.domain.DomainConverterProvider",
12+
)
1213
}
1314
}
1415

15-
dependencies {
16-
val domaVersion: String by project
17-
annotationProcessor("org.seasar.doma:doma-processor:${domaVersion}")
18-
implementation("org.seasar.doma:doma-core:${domaVersion}")
19-
implementation("org.seasar.doma:doma-slf4j:${domaVersion}")
20-
}
21-
2216
application {
2317
mainClass.set("example.jpms_java.Main")
2418
}

0 commit comments

Comments
 (0)