我有一个任务:
task info<<{
println "Gradle — система автоматической сборки, построенная на принципах Apache Ant и Apache Maven, но предоставляющая DSL на языке Groovy вместо традиционной XML-образной формы представления конфигурации проекта."
}
当我使用命令时:
gradle info -Dfile.encoding=UTF-8
文字显示不正确。如何修复它?谢谢。
我使用
build.gradle
中的下一个设置,它对我来说效果很好:
compileJava.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
当执行 Gradle 构建的 JVM(例如 Gradle Daemon)启动时,需要正确设置
file.encoding
系统属性。实现这一目标的一种方法是使用 export GRADLE_OPTS="-Dfile.encoding=utf-8"
。另一种可能有效的方法是将 systemProp.file.encoding=utf-8
添加到 gradle.properties
。当然,这假设构建脚本文件实际上使用 utf-8 编码。要查看您的平台(以及 Gradle)的默认编码是什么,请在构建脚本中打印出系统属性的值。
在 gradle.properties 中
org.gradle.jvmargs='-Dfile.encoding=UTF-8'
如果您使用 kotlin DSL,那么:
build.gradle.kts:
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
}
对于我在 build.gradle 中唯一的作品:
apply plugin: 'java'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
repositories {
mavenCentral()
}
....
test {
systemProperty "file.encoding", "utf-8"
}
可能的解决方案是将 gradle 构建调用包装到 sh 脚本中,并在此脚本中导出编码设置: buildScript.sh:
export GRADLE_OPTS="-Dfile.encoding=utf-8"
gradlew clean build ...
附注此解决方案已成功检查并提供
以上所有解决方案都需要更改 IDE 设置并重新启动 IDE。
我通过向 build.gradle 添加一些行来解决这个问题
compileJava.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
test {
systemProperty "file.encoding", "utf-8"
useJUnitPlatform()
}
我的情况是在
~/.gradle/gradle.properties
写了中文,然后加了systemProp.file.encoding=utf-8
,export GRADLE_OPTS="-Dfile.encoding=utf -8"
不生效。
我想原因可能是在加载这些东西之前,
~/.gradle/gradle.properties
已经以默认编码加载了。
我最终的解决办法是把中文转成Unicode,比如
\u6211\u7684\u8d44\u6e90
然后写~/.gradle/gradle.properties
。