【问题标题】:How to set character encoding for Groovydoc in Gradle?如何在 Gradle 中为 Groovydoc 设置字符编码?
【发布时间】:2012-11-21 23:36:11
【问题描述】:

我有带有 UTF-8 编码的 Groovy 代码,并且需要生成的 Groovydoc HTML 才能使用相同的代码。但是如何在 Gradle 中配置呢?

【问题讨论】:

    标签: gradle groovydoc


    【解决方案1】:

    Groovydoc 工具以及 Gradle 的 Groovydoc 任务目前不支持 encoding 选项。不过,为 Gradle JVM 设置 file.encoding 系统属性应该可以工作。您可以通过GRADLE_OPTS 环境变量或将systemProp.file.encoding=utf-8 添加到gradle.properties 来执行此操作。

    【讨论】:

    • 感谢您的提示,但它不起作用。当我在 gradle groovydoc 之前导出 GRADLE_OPTS="-Dfile.encoding=UTF-8" 时发生了一些变化,但它仍然无法生成挪威语“Ø”。我在 Mac 上运行并且 gradle --version 给出了这个: -------------------------- ---------------------- Gradle 1.2 -------------- ---------------------------------- Gradle 构建时间:2012 年 9 月 12 日星期三 10:46:02 AM UTC Groovy:1.8.6 Ant:2012 年 5 月 22 日编译的 Apache Ant(TM) 版本 1.8.4 Ivy:2.2.0 JVM:1.6.0_35(Apple Inc. 20.10-b01-428) 操作系统:Mac OS X 10.8.1 x86_64 还有更多提示吗?
    • 据我所知,-Dfile.encoding 是唯一的机会。不确定为什么它不起作用。我已经提交了一个向 Groovydoc 添加 encoding 选项的问题。
    • 当然,您必须将file.encoding 系统属性设置为您用于源文件的任何编码(可能不是 UTF-8)。 Groovydoc 将使用这种编码来读取源文件和编写 HTML。不确定它是否在 HTML 中声明了编码。
    • 我的源文件肯定是 UTF-8。我的问题是它没有在 HTML 中声明编码。
    • 您可以通过显式设置浏览器的编码轻松验证这一点。然后你可以编写一个小任务,在 HTML 中声明编码。
    【解决方案2】:

    令人惊讶的是,经过六年和许多 Gradle 版本,这个问题仍然存在 :)

    当我将 Unicode 字符(即箭头)添加到我的 Groovydoc 概述文件并尝试在具有默认 Windows-1251 编码的机器上组装 Groovydoc 时,我遇到了这个问题。

    从 Gradle 4.10.2 开始,可以通过 setAntGroovydoc 方法为 groovydoc 任务提供自己的 AntGroovydoc 实现,从而为 Groovydoc 使用其他选项。但是由于这种方法被认为是内部的,所以它会是一个有点 hacky 的解决方案。此外,AntGroovydoc 显然不是为扩展而设计的,其子类化需要大量复制粘贴原始类。

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 2021-07-21
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      相关资源
      最近更新 更多