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

qnakjoqk  于 2024-01-08  发布在  其他
关注(0)|答案(8)|浏览(95)

我有个任务:

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

字符串
当我使用命令时:

gradle info -Dfile.encoding=UTF-8


文本显示不正确。如何修复?谢谢。

643ylb08

643ylb081#

我在build.gradle中使用下一个设置,它对我来说很好:

compileJava.options.encoding = 'UTF-8'

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

字符串

hgc7kmma

hgc7kmma2#

当JVM执行Gradle构建时,需要正确设置file.encoding系统属性(例如Gradle守护程序)启动。实现此目的的一种方法是使用export GRADLE_OPTS="-Dfile.encoding=utf-8"。另一种可能的方法是将systemProp.file.encoding=utf-8添加到gradle.properties。当然,这假设构建脚本文件实际上使用utf-8编码。要查看您的平台的(因此Gradle的)默认编码是,在构建脚本中打印出系统属性的值。

wko9yo5t

wko9yo5t3#

在gradle.properties

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

字符串

tjrkku2a

tjrkku2a4#

如果你使用的是KotlinDSL,那么:
build.gradle.kts:

tasks.withType<JavaCompile> {
    options.encoding = "UTF-8"
}

字符串

xlpyo6sf

xlpyo6sf5#

对于我在build.gradle中使用此功能的唯一作品:

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

字符串

gjmwrych

gjmwrych6#

可能的解决方案是将gradle构建调用 Package 到sh脚本中,并在此脚本中导出编码设置:buildScript.sh:

export GRADLE_OPTS="-Dfile.encoding=utf-8" 
gradlew clean build ...

字符串
P.S.此解决方案已成功检查并提供

nr9pn0ug

nr9pn0ug7#

在我的例子中,我在~/.gradle/gradle.properties中写了中文,然后我添加了systemProp.file.encoding=utf-8export GRADLE_OPTS="-Dfile.encoding=utf -8"不起作用。
我认为原因可能是在加载这些东西之前,~/.gradle/gradle.properties已经以默认编码加载。
我的最终解决方案是将中文转换为Unicode,例如\u6211\u7684\u8d44\u6e90,然后写入~/.gradle/gradle.properties

8cdiaqws

8cdiaqws8#

以上所有解决方案都需要更改IDE设置并重新启动IDE。
我通过在build.gradle中添加一些行来解决这个问题

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

test {
    systemProperty "file.encoding", "utf-8"
    useJUnitPlatform()
}

字符串

相关问题