在Gradle中正确显示UTF-8文本

Xel*_*ian 19 text build utf-8 gradle

我有一个任务:

task info<<{
    println "Gradle — ??????? ?????????????? ??????, ??????????? ?? ????????? Apache Ant ? Apache Maven, ?? ??????????????? DSL ?? ????? Groovy ?????? ???????????? XML-???????? ????? ????????????? ???????????? ???????."
}
Run Code Online (Sandbox Code Playgroud)

当我使用commadn时

gradle info -Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)

文字没有正确显示.怎么解决?谢谢.

Tap*_*ave 43

我使用下一个setings build.gradle并且它的工作对我来说很好:

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}
Run Code Online (Sandbox Code Playgroud)

  • 我相信,遍历所有JavaCompile任务还将设置compileJava任务的编码。因此,您不需要摘要中的第一行。 (5认同)

Pet*_*ser 16

file.encoding系统属性需要权当执行摇篮打造JVM(如摇篮守护进程)启动进行设置.实现这一目标的一种方法是export GRADLE_OPTS="-Dfile.encoding=utf-8".可能工作的另一种方法是添加systemProp.file.encoding=utf-8gradle.properties.当然,这假设构建脚本文件实际上使用的是utf-8编码.要查看您的平台(以及Gradle的)默认编码是什么,请在构建脚本中打印系统属性的值.

  • 将`systemProp.file.encoding = utf-8`添加到`gradle.properties`不起作用.`GRADLE_OPTS`有效. (3认同)

jav*_*jon 10

在gradle.properties中

org.gradle.jvmargs='-Dfile.encoding=UTF-8'
Run Code Online (Sandbox Code Playgroud)

  • 至少从 Gradle 7.6 开始,似乎没有生成“gradle.properties”。 (2认同)

use*_*141 8

如果您使用的是 kotlin DSL,则:

build.gradle.kts:

tasks.withType<JavaCompile> {
    options.encoding = "UTF-8"
}
Run Code Online (Sandbox Code Playgroud)


小智 7

对于我在 build.gradle 中唯一的作品:

apply plugin: 'java'
tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}
repositories {
    mavenCentral()
}
....
test {
    systemProperty "file.encoding", "utf-8"
}
Run Code Online (Sandbox Code Playgroud)