【发布时间】:2012-11-21 23:36:11
【问题描述】:
我有带有 UTF-8 编码的 Groovy 代码,并且需要生成的 Groovydoc HTML 才能使用相同的代码。但是如何在 Gradle 中配置呢?
【问题讨论】:
我有带有 UTF-8 编码的 Groovy 代码,并且需要生成的 Groovydoc HTML 才能使用相同的代码。但是如何在 Gradle 中配置呢?
【问题讨论】:
Groovydoc 工具以及 Gradle 的 Groovydoc 任务目前不支持 encoding 选项。不过,为 Gradle JVM 设置 file.encoding 系统属性应该可以工作。您可以通过GRADLE_OPTS 环境变量或将systemProp.file.encoding=utf-8 添加到gradle.properties 来执行此操作。
【讨论】:
-Dfile.encoding 是唯一的机会。不确定为什么它不起作用。我已经提交了一个向 Groovydoc 添加 encoding 选项的问题。
file.encoding 系统属性设置为您用于源文件的任何编码(可能不是 UTF-8)。 Groovydoc 将使用这种编码来读取源文件和编写 HTML。不确定它是否在 HTML 中声明了编码。
令人惊讶的是,经过六年和许多 Gradle 版本,这个问题仍然存在 :)
当我将 Unicode 字符(即箭头)添加到我的 Groovydoc 概述文件并尝试在具有默认 Windows-1251 编码的机器上组装 Groovydoc 时,我遇到了这个问题。
从 Gradle 4.10.2 开始,可以通过 setAntGroovydoc 方法为 groovydoc 任务提供自己的 AntGroovydoc 实现,从而为 Groovydoc 使用其他选项。但是由于这种方法被认为是内部的,所以它会是一个有点 hacky 的解决方案。此外,AntGroovydoc 显然不是为扩展而设计的,其子类化需要大量复制粘贴原始类。
【讨论】: