如何从编译后的Kotlin类文件中移除调试信息
Kotlin编译器关闭调试信息配置方案
Kotlin编译器完全支持类似javac-g:none的调试信息控制能力,可以通过以下方式配置关闭调试信息生成:
- 命令行直接编译场景
Kotlin编译器原生兼容javac的-g系列参数,直接在编译命令后追加-g:none即可关闭所有调试信息生成,示例:kotlinc HelloWorld.kt -g:none - Gradle构建场景
针对所有Kotlin编译任务统一添加编译器参数即可:- 若使用Kotlin DSL(build.gradle.kts),配置如下:
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions { freeCompilerArgs += "-g:none" } }- 若使用Groovy DSL(build.gradle),配置如下:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) { kotlinOptions { freeCompilerArgs += "-g:none" } } - Maven构建场景
在kotlin-maven-plugin的配置中追加编译参数即可:<plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${your.kotlin.version}</version> <configuration> <args> <arg>-g:none</arg> </args> </configuration> </plugin>
如果需要仅保留部分调试信息,可以将-g:none替换为对应参数值:-g:source仅保留源文件名信息、-g:lines仅保留行号信息、-g:vars仅保留局部变量名信息,多个值可用逗号分隔组合使用。
内容的提问来源于stack exchange,提问作者nnesterov
相关产品推荐
相关产品推荐

