2017-08-08 27 views
13

当使用摇篮构建Java或Groovy,它可以定义这样的信源编码:如何在Gradle中设置Kotlin源代码?

compileJava { 
    options.encoding = 'UTF-8' 
} 

compileTestJava { 
    options.encoding = 'UTF-8' 
} 

compileGroovy { 
    groovyOptions.encoding = 'UTF-8' 
} 

compileTestGroovy { 
    groovyOptions.encoding = 'UTF-8' 
} 

然而,科特林类似的方法行不通:

compileKotlin {   
    kotlinOptions.jvmTarget = '1.8' 
    kotlinOptions.encoding = 'UTF-8' 
} 

它失败,出现错误:

* What went wrong: 
A problem occurred evaluating root project 'backend'. 
> No such property: encoding for class: org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl 

我实际上找不到关于Kotlin编译器编码的任何信息。这是否意味着没有这种选择?它使用什么字符集呢,UTF-8,系统默认(我不希望)?

+0

我很确定它总是UTF-8,虽然我找不到它记录。 – ephemient

+5

'这是否意味着没有这样的选择?' - 在检查源代码后,我可以告诉你:不。没有这样的选择。你可以检查插件的DSL [这里](https://github.com/JetBrains/kotlin/tree/master/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/ gradle这个/ DSL)。特别是'KotlinJvmOptions *'对你有什么感兴趣,什么不是。不幸的是,我不能说你使用哪种默认编码... – StefMa

+0

我发现这条语句“所有Kotlin源文件使用UTF-8字符编码”,位于https://medium.com/@napperley/unofficial-kotlin-style -guide-a44cb899a84f。但它似乎是最佳实践。我猜如果UTF-8工作和其他编码不行,并且没有办法指定实际的编码,那么你就坚持使用UTF-8。 – Xvolks

回答

5

Kotlin源文件始终是UTF-8的设计。没有办法指定任何其他编码。

相关问题