Show UTF-8 text properly in Gradle

2019-01-17 22:32发布

问题:

I have a task:

task info<<{
    println "Gradle — система автоматической сборки, построенная на принципах Apache Ant и Apache Maven, но предоставляющая DSL на языке Groovy вместо традиционной XML-образной формы представления конфигурации проекта."
}

when I use commadn

gradle info -Dfile.encoding=UTF-8

The text is not shown properly. How to fix it? Thanks.

回答1:

The file.encoding system property needs to be set right when the JVM executing the Gradle build (e.g. the Gradle Daemon) starts up. One way to achieve this is with export GRADLE_OPTS="-Dfile.encoding=utf-8". Another way that might work is to add systemProp.file.encoding=utf-8 to gradle.properties. Of course this assumes that the build script files are actually using utf-8 encoding. To see what your platform's (and therefore Gradle's) default encoding is, print out the system property's value in a build script.



回答2:

I use next setings in build.gradle and its work fine for me:

compileJava.options.encoding = 'UTF-8'

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}


回答3:

In gradle.properties

org.gradle.jvmargs='-Dfile.encoding=UTF-8'


回答4:

For my only works with this in build.gradle:

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