如何查询Kotlin编译器各参数的默认取值?
解决方案
1. 常用查询方法
- 执行Gradle命令打印生效配置:在项目根目录执行对应系统的命令:
- Linux/macOS:
./gradlew kotlinCompilerOptions - Windows:
gradlew.bat kotlinCompilerOptions
命令输出会区分显式配置项和默认继承的配置项,直接就能看到哪些参数是你额外设置的默认值。
- Linux/macOS:
- 直接查看IDE关联的源码:在编辑器中按住Ctrl(Mac按Command)点击
kotlinOptions配置块,跳转至对应的配置类(JVM项目对应KotlinJvmOptions类),每个属性的注释都会标注默认值、废弃版本等信息。 - 编译时打印全量编译器参数:在你的
kotlinOptions中添加一行配置freeCompilerArgs += ["-Xshow-settings"],执行任意编译任务后控制台会输出所有编译器生效参数,包含未显式声明的默认值。
2. 你当前配置中各参数的默认值参考
你给出的配置:
kotlinOptions { languageVersion = "1.5" apiVersion = "1.5" jvmTarget = '11' useIR = true }
各参数的默认规则如下:
languageVersion/apiVersion:默认与你项目使用的Kotlin Gradle插件版本完全一致,如果你没有兼容旧版本的需求,完全可以删除这两行配置,升级Kotlin版本时会自动同步。jvmTarget:Kotlin 1.5~1.7版本默认值为1.8,Kotlin 1.8+默认值为17;如果你已经配置了项目Java工具链版本为11,该参数会自动对齐工具链版本,无需显式声明。useIR:Kotlin 1.5版本开始JVM后端默认启用IR编译器,Kotlin 1.7版本后该参数已被废弃,配置后无任何效果,可以直接删除。
3. 优化建议
删除显式声明的默认值后,建议先执行一次编译任务对比参数差异,避免实验性参数默认值变更引发业务兼容问题;如果你使用的是实验性编译参数,建议保留显式声明直到参数转为稳定版。
内容的提问来源于stack exchange,提问作者user2297550
相关产品推荐
相关产品推荐

