从Kotlin 1.9.23迁移至2.0.0后编译时间大幅延长求助
针对你升级Kotlin到2.0.0后应用模块编译变慢的问题,可从以下几个方向排查:
1. 插件版本兼容性问题
统一Kotlin插件版本管理
应用模块的plugins块中重复声明了Kotlin插件版本,虽然当前版本一致,但根项目已通过apply false统一管理版本,建议应用模块省略版本声明,避免后续版本不一致风险:
plugins { kotlin("jvm") kotlin("plugin.serialization") kotlin("plugin.spring") kotlin("plugin.allopen") // 其余插件配置保持不变 }
升级Dokka插件版本
你使用的Dokka 1.9.20与Kotlin 2.0.0不兼容,旧版本Dokka可能会在编译时产生额外开销,升级到匹配的2.0.0版本:
id("org.jetbrains.dokka") version "2.0.0"
2. 编译器与增量编译配置优化
确保增量编译启用
Kotlin 2.0默认启用增量编译,但检查gradle.properties中是否存在禁用配置,确保以下参数正确:
kotlin.incremental=true kotlin.caching.enabled=true org.gradle.caching=true
调整JVM默认方法参数
Kotlin 2.0对-Xjvm-default参数的处理逻辑有优化,尝试将-Xjvm-default=all改为-Xjvm-default=all-compatibility,或确认是否真的需要该参数(若项目已完全适配Kotlin 2.0的默认方法规则,可考虑移除):
freeCompilerArgs = listOf("-Xjvm-default=all-compatibility")
3. Spring注解处理开销排查
应用模块因Spring插件的注解处理(如@Component、@RestController等)可能成为耗时瓶颈,添加编译日志参数定位具体耗时环节:
在应用模块的kotlin.compilerOptions中添加:
freeCompilerArgs.add("-Xlog-perf")
执行./gradlew compileKotlin --info,查看日志中注解处理阶段的耗时,确认是否是Spring相关注解处理器导致的延迟。同时可尝试升级Spring Boot到最新补丁版本(如3.3.1),修复潜在的兼容问题。
4. IDE配置优化
- 确保IntelliJ IDEA版本为2024.1及以上,旧版本对Kotlin 2.0的支持不完善,易出现编译缓存异常。
- 清理IDE缓存:执行
File -> Invalidate Caches...并选择"Invalidate and Restart",清除旧的编译缓存。 - 启用并行编译:在
Settings -> Build, Execution, Deployment -> Compiler中勾选"Compile independent modules in parallel"。
5. Gradle全局配置优化
在gradle.properties中添加以下参数,提升Gradle构建效率:
org.gradle.parallel=true org.gradle.configuration-cache=true org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g
内容的提问来源于stack exchange,提问作者Tristan Adams

