2017-08-08 78 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的設計。沒有辦法指定任何其他編碼。

相關問題