Skip to content

Commit b9d1eb5

Browse files
author
Debop
committed
Bumpup kotlin 1.8.20
1 parent a1f1fb9 commit b9d1eb5

File tree

13 files changed

+405
-298
lines changed

13 files changed

+405
-298
lines changed

.java-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
11
1+
11.0

build.gradle.kts

+82-34
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,32 @@
11
import org.jetbrains.dokka.gradle.DokkaTask
22
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformJvmPlugin
3-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
4-
5-
buildscript {
6-
repositories {
7-
mavenCentral()
8-
}
9-
dependencies {
10-
classpath("org.jetbrains.kotlinx:atomicfu-gradle-plugin:${Versions.atomicfu}")
11-
}
12-
}
133

144
plugins {
15-
165
base
17-
kotlin("jvm") version Versions.kotlin apply false
6+
`maven-publish`
7+
jacoco
8+
kotlin("jvm") version Versions.kotlin
189

1910
// see: https://kotlinlang.org/docs/reference/compiler-plugins.html
2011
kotlin("plugin.spring") version Versions.kotlin apply false
2112
kotlin("plugin.allopen") version Versions.kotlin apply false
2213
kotlin("plugin.noarg") version Versions.kotlin apply false
2314
kotlin("plugin.jpa") version Versions.kotlin apply false
15+
kotlin("plugin.serialization") version Versions.kotlin apply false
16+
// kotlin("plugin.atomicfu") version Versions.kotlin apply false
17+
kotlin("kapt") version Versions.kotlin apply false
2418

2519
//id(BuildPlugins.detekt) version BuildPlugins.Versions.detekt apply false
2620
id(BuildPlugins.dokka) version BuildPlugins.Versions.dokka apply false
2721
id(BuildPlugins.dependency_management) version BuildPlugins.Versions.dependency_management
2822
id(BuildPlugins.spring_boot) version BuildPlugins.Versions.spring_boot apply false
29-
`maven-publish`
23+
3024
}
3125

3226
allprojects {
3327
repositories {
3428
mavenCentral()
3529
google()
36-
jcenter()
3730
}
3831
}
3932

@@ -43,33 +36,87 @@ subprojects {
4336
plugin<JavaLibraryPlugin>()
4437
plugin<KotlinPlatformJvmPlugin>()
4538

46-
plugin("kotlinx-atomicfu")
47-
4839
plugin("jacoco")
4940
plugin("maven-publish")
5041

5142
// plugin("io.gitlab.arturbosch.detekt")
5243
plugin("org.jetbrains.dokka")
5344
plugin("io.spring.dependency-management")
54-
plugin("maven-publish")
5545
}
5646

57-
tasks.withType<KotlinCompile> {
58-
sourceCompatibility = "11"
59-
kotlinOptions {
60-
val experimentalAnnotations = listOf("kotlin.Experimental",
61-
"kotlin.experimental.ExperimentalTypeInference",
62-
"kotlin.ExperimentalMultiplatform",
63-
"kotlinx.coroutines.ExperimentalCoroutinesApi",
64-
"kotlinx.coroutines.ObsoleteCoroutinesApi",
65-
"kotlinx.coroutines.InternalCoroutinesApi",
66-
"kotlinx.coroutines.FlowPreview")
67-
jvmTarget = "11"
68-
freeCompilerArgs.plus("-Xjsr305=strict")
69-
freeCompilerArgs.plus("-Xjvm-default=enable")
70-
freeCompilerArgs.plus(experimentalAnnotations.map { "-Xuse-experimental=$it" })
71-
freeCompilerArgs.plus("-progressive")
72-
freeCompilerArgs.plus("-XXLanguage:+InlineClasses")
47+
java {
48+
toolchain {
49+
languageVersion.set(JavaLanguageVersion.of(17))
50+
}
51+
}
52+
53+
val javaVersion = JavaVersion.VERSION_17.toString()
54+
55+
tasks {
56+
compileJava {
57+
sourceCompatibility = javaVersion
58+
targetCompatibility = javaVersion
59+
}
60+
61+
compileKotlin {
62+
kotlinOptions {
63+
jvmTarget = javaVersion
64+
languageVersion = "1.8"
65+
apiVersion = "1.8"
66+
freeCompilerArgs = listOf(
67+
"-Xjsr305=strict",
68+
"-Xjvm-default=all",
69+
"-Xinline-classes",
70+
"-Xallow-result-return-type",
71+
"-Xstring-concat=indy", // since Kotlin 1.4.20 for JVM 9+
72+
"-progressive", // since Kotlin 1.6
73+
"-Xenable-builder-inference", // since Kotlin 1.6
74+
"-Xbackend-threads=0", // since 1.6.20 (0 means one thread per CPU core)
75+
// "-Xuse-k2" // since Kotlin 1.7 // kapt not support
76+
)
77+
78+
val experimentalAnnotations = listOf(
79+
"kotlin.RequiresOptIn",
80+
"kotlin.contracts.ExperimentalContracts",
81+
"kotlin.experimental.ExperimentalTypeInference",
82+
"kotlinx.coroutines.ExperimentalCoroutinesApi",
83+
"kotlinx.coroutines.InternalCoroutinesApi",
84+
"kotlinx.coroutines.FlowPreview",
85+
)
86+
freeCompilerArgs = freeCompilerArgs.plus(experimentalAnnotations.map { "-opt-in=$it" })
87+
}
88+
}
89+
90+
compileTestKotlin {
91+
kotlinOptions {
92+
jvmTarget = javaVersion
93+
languageVersion = "1.8"
94+
apiVersion = "1.8"
95+
freeCompilerArgs = listOf(
96+
"-Xjsr305=strict",
97+
"-Xjvm-default=all",
98+
"-Xinline-classes",
99+
"-Xallow-result-return-type",
100+
"-Xstring-concat=indy", // since Kotlin 1.4.20 for JVM 9+
101+
"-progressive", // since Kotlin 1.6
102+
"-Xenable-builder-inference", // since Kotlin 1.6
103+
"-Xbackend-threads=0", // since 1.6.20 (0 means one thread per CPU core)
104+
// "-Xuse-k2" // since Kotlin 1.7 // kapt not support
105+
)
106+
107+
val experimentalAnnotations = listOf(
108+
"kotlin.RequiresOptIn",
109+
"kotlin.Experimental",
110+
"kotlin.ExperimentalStdlibApi",
111+
"kotlin.time.ExperimentalTime",
112+
"kotlin.contracts.ExperimentalContracts",
113+
// "kotlin.experimental.ExperimentalTypeInference",
114+
"kotlinx.coroutines.ExperimentalCoroutinesApi",
115+
"kotlinx.coroutines.InternalCoroutinesApi",
116+
"kotlinx.coroutines.FlowPreview",
117+
)
118+
freeCompilerArgs = freeCompilerArgs.plus(experimentalAnnotations.map { "-opt-in=$it" })
119+
}
73120
}
74121
}
75122

@@ -138,6 +185,7 @@ subprojects {
138185
imports {
139186
mavenBom("org.springframework.boot:spring-boot-dependencies:${Versions.spring_boot}")
140187
mavenBom("org.springframework.cloud:spring-cloud-dependencies:${Versions.spring_cloud}")
188+
mavenBom(Libraries.kotlin_bom)
141189
}
142190
dependencies {
143191
dependency(Libraries.kotlin_stdlib)
@@ -247,7 +295,7 @@ subprojects {
247295
testImplementation(Libraries.kotlin_test_junit5)
248296

249297
implementation(Libraries.kotlinx_coroutines_jdk8)
250-
implementation(Libraries.atomicfu)
298+
// implementation(Libraries.atomicfu)
251299

252300
api(Libraries.commons_lang3)
253301

buildSrc/build.gradle.kts

-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,3 @@ repositories {
66
plugins {
77
`kotlin-dsl`
88
}
9-
10-
kotlinDslPluginOptions {
11-
experimentalWarning.set(false)
12-
}

buildSrc/src/main/kotlin/Libraries.kt

+50-23
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
object BuildPlugins {
22

33
object Versions {
4-
const val detekt = "1.2.2"
4+
const val detekt = "1.7.20"
55
const val dokka = "0.9.18"
6-
const val dependency_management = "1.0.10.RELEASE"
7-
const val jooq = "3.0.3"
8-
const val protobuf = "0.8.13"
9-
const val avro = "0.17.0"
6+
const val dependency_management = "1.1.0"
7+
const val jooq = "8.2"
8+
const val protobuf = "0.8.19"
9+
const val avro = "1.7.0"
1010
const val jarTest = "1.0.1"
11-
const val spring_boot = "2.5.4"
11+
const val spring_boot = "2.7.10"
1212
}
1313

1414
const val detekt = "io.gitlab.arturbosch.detekt"
@@ -22,27 +22,28 @@ object BuildPlugins {
2222
const val protobuf = "com.google.protobuf"
2323

2424
// https://github.com/davidmc24/gradle-avro-plugin
25-
const val avro = "com.commercehub.gradle.plugin.avro"
25+
const val avro = "com.github.davidmc24.gradle.plugin.avro" //"com.commercehub.gradle.plugin.avro"
2626

2727
const val jarTest = "com.github.hauner.jarTest"
2828
}
2929

3030
object Versions {
3131

32-
const val kotlin = "1.5.31"
33-
const val kotlinx_coroutines = "1.5.2"
34-
const val atomicfu = "0.16.3"
32+
const val kotlin = "1.8.20"
33+
const val kotlinx_coroutines = "1.6.4"
34+
const val atomicfu = "0.20.2"
3535

3636
const val spring_boot = BuildPlugins.Versions.spring_boot
37-
const val spring_cloud = "2020.0.3"
37+
const val spring_cloud = "2021.0.5"
3838
const val resilience4j = "1.7.0"
3939
const val vavr = "0.10.0"
4040
const val netty = "4.1.58.Final"
4141

4242
const val grpc = "1.22.1"
4343
const val protobuf = "3.9.0"
4444
const val krotoplus = "0.4.0"
45-
const val avro = "1.10.2" // 1.9.0 은 jackson-dataformat-avro 에서 아직 지원하지 않습니다.
45+
// https://mvnrepository.com/artifact/org.apache.avro/avro
46+
const val avro = "1.11.1"
4647

4748
const val kafka = "2.8.1"
4849

@@ -59,7 +60,7 @@ object Versions {
5960
const val hibernate_validator = "6.0.17.Final"
6061
const val javers = "5.6.3"
6162
const val querydsl = "4.2.1"
62-
const val jooq = "3.11.11"
63+
const val jooq = "3.18.3"
6364

6465
const val kotlin_logging = "1.7.6"
6566
const val slf4j = "1.7.26"
@@ -72,20 +73,43 @@ object Versions {
7273

7374
const val byte_buddy = "1.11.16"
7475

75-
const val junit_jupiter = "5.7.2"
76-
const val junit_platform = "1.7.2"
76+
const val junit_jupiter = "5.9.2"
77+
const val junit_platform = "1.9.2"
7778
const val mockito = "3.0.0"
78-
const val testcontainers = "1.16.0"
79+
const val testcontainers = "1.18.0"
7980
}
8081

8182
object Libraries {
8283

83-
const val kotlin_stdlib = "org.jetbrains.kotlin:kotlin-stdlib:${Versions.kotlin}"
84-
const val kotlin_stdlib_jdk7 = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin}"
85-
const val kotlin_stdlib_jdk8 = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${Versions.kotlin}"
86-
const val kotlin_reflect = "org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlin}"
87-
const val kotlin_test = "org.jetbrains.kotlin:kotlin-test:${Versions.kotlin}"
88-
const val kotlin_test_junit5 = "org.jetbrains.kotlin:kotlin-test-junit5:${Versions.kotlin}"
84+
85+
// kotlin
86+
fun kotlin(module: String, version: String = Versions.kotlin) = "org.jetbrains.kotlin:kotlin-$module:$version"
87+
88+
val kotlin_bom get() = kotlin("bom")
89+
val kotlin_stdlib get() = kotlin("stdlib")
90+
val kotlin_stdlib_common get() = kotlin("stdlib-common")
91+
val kotlin_stdlib_jdk7 get() = kotlin("stdlib-jdk7")
92+
val kotlin_stdlib_jdk8 get() = kotlin("stdlib-jdk8")
93+
val kotlin_reflect get() = kotlin("reflect")
94+
val kotlin_test get() = kotlin("test")
95+
val kotlin_test_common get() = kotlin("test-common")
96+
val kotlin_test_junit5 get() = kotlin("test-junit5")
97+
98+
// Kotlin 1.3.40 부터는 kotlin-scripting-jsr223 만 참조하면 됩니다.
99+
val kotlin_scripting_jsr223 get() = kotlin("scripting-jsr223")
100+
val kotlin_compiler get() = kotlin("compiler")
101+
102+
// Kotlin 1.4+ 부터는 kotlin-scripting-dependencies 를 참조해야 합니다.
103+
val kotlin_scripting_dependencies get() = kotlin("scripting-dependencies")
104+
105+
val kotlin_compiler_embeddable get() = kotlin("compiler-embeddable")
106+
val kotlin_daemon_client get() = kotlin("daemon-client")
107+
val kotlin_scripting_common get() = kotlin("scripting-common")
108+
val kotlin_scripting_compiler_embeddable get() = kotlin("scripting-compiler-embeddable")
109+
val kotlin_scripting_jvm get() = kotlin("scripting-jvm")
110+
val kotlin_script_runtime get() = kotlin("script-runtime")
111+
val kotlin_script_util get() = kotlin("scripting-util")
112+
89113

90114
const val kotlinx_coroutines_core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.kotlinx_coroutines}"
91115
const val kotlinx_coroutines_jdk7 = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk7:${Versions.kotlinx_coroutines}"
@@ -196,6 +220,9 @@ object Libraries {
196220
const val avro_compiler = "org.apache.avro:avro-compiler:${Versions.avro}"
197221
const val avro_protobuf = "org.apache.avro:avro-protobuf:${Versions.avro}"
198222

223+
// https://mvnrepository.com/artifact/com.github.avro-kotlin.avro4k/avro4k-core
224+
val avro_kotlin get() = "com.github.avro-kotlin.avro4k:avro4k-core:1.7.0"
225+
199226
const val kafka_clients = "org.apache.kafka:kafka-clients:${Versions.kafka}"
200227
const val kafka_streams = "org.apache.kafka:kafka-streams:${Versions.kafka}"
201228
const val kafka_streams_test_utils = "org.apache.kafka:kafka-streams-test-utils:${Versions.kafka}"
@@ -375,4 +402,4 @@ object Libraries {
375402

376403
const val spring_kafka = "org.springframework.kafka:spring-kafka:2.7.7"
377404

378-
}
405+
}

gradle.properties

+25-15
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,28 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414
#
15-
16-
group = "io.github.debop"
17-
version = 0.0.1
18-
19-
org.gradle.daemon = true
20-
org.gradle.parallel = true
21-
org.gradle.caching = true
22-
23-
org.gradle.jvmargs = -Xmx4G
24-
25-
kotlin.incremental = true
26-
kotlin.parallel.tasks.in.project = true
27-
kapt.use.worker.api = true
28-
java.incremental = true
29-
15+
group="io.github.debop"
16+
version=0.0.1
17+
org.gradle.daemon=true
18+
org.gradle.parallel=true
19+
org.gradle.caching=true
20+
org.gradle.scan=true
21+
# JVM 9+ \u110B\u1175\u11AB \u1100\u1167\u11BC\u110B\u116E\u110B\u1166 jvmargs\u110B\u1166 \u1103\u1161\u110B\u1173\u11B7\u110B\u1173\u11AF \u110E\u116E\u1100\u1161
22+
# --add-exports=javafx.base/com.sun.javafx.event=org.controlsfx.controls
23+
org.gradle.jvmargs=-Xms4G -Xmx4G -Dfile.encoding=UTF-8 \
24+
--illegal-access=permit \
25+
--add-exports=javafx.base/com.sun.javafx.event=org.controlsfx.controls \
26+
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \
27+
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED \
28+
--add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \
29+
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \
30+
--add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \
31+
--add-opens java.base/java.nio=ALL-UNNAMED
32+
org.gradle.unsafe.watch-fs=true
33+
kotlin.code.style=official
34+
java.incremental=true
35+
kotlin.incremental=true
36+
# since Kotlin 1.7.0
37+
kotlin.incremental.useClasspathSnapshot=true
38+
# \uC774\uAC83\uC744 \uB123\uC73C\uB2C8 hibernate querydsl kapt \uAC00 \uC81C\uB300\uB85C \uB41C\uB2E4
39+
kapt.incremental.apt=true
+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
2-
distributionPath = wrapper/dists
3-
distributionUrl = https\://services.gradle.org/distributions/gradle-7.2-all.zip
4-
zipStoreBase = GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
4+
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)