【发布时间】:2014-08-24 15:21:34
【问题描述】:
与 JDK7 相比,我发现很难阅读 JDK8 javadoc 中的新外观。 这是一个并排的示例。
JDK7:
JDK8:
JDK8 占用了相当多的空间。它现在使用以前使用 Arial 的 DejaVu 字体。这可能有充分的理由。我不知道。
我最大的问题是在“参数”和“抛出”部分,参数与其描述之间不再有任何视觉差异。它们都是单行距字体。我认为,用单行距字体编写描述性文本很丑陋。 Mono 间隔字体用于标识符名称、源代码列表等。 (尽管不同意)。
我可以在使用 JDK8 javadoc 工具的同时恢复 JDK7 样式吗?
我希望有类似javadoc -stylesheet jdk7.css 的东西,其中jdk7.css 包含在JDK8 中。此外,如果我决定自己定制 css(不是我的事,但可能没有其他解决方案),我不愿意确保新样式表在我们企业的每个构建服务器上的可用性。也许有一个 Maven 解决方案?
可能的解决方案?
建议(如下)将JDK7 javadoc css 与 JDK8 javadoc 工具一起使用,看看这是否会带回一些符合条件的 Javadoc。
我通过查看 Apache Commons Lang 项目的源代码完成了我的测试。我使用 only 源代码,而不是他们的 POM。这是为了确保我知道我的工作是正确的。
好的,首先 - 供参考 - 这是由全 JDK7 工具链(JDK7 javadoc 工具,JDK7 css)生成的 Javadoc。这是 POM sn-p:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<stylesheetfile>${basedir}/src/main/css/jdk7javadoc.css</stylesheetfile>
<javadocExecutable>C:/Program Files/Java/jdk1.7.0_55/bin</javadocExecutable>
</configuration>
</plugin>
</plugins>
</build>
以及生成的 Javadoc:
接下来,尝试将JDK7 css与JDK8 javadoc工具一起使用。这是 POM sn-p:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<stylesheetfile>${basedir}/src/main/css/jdk7javadoc.css</stylesheetfile>
<javadocExecutable>C:/Program Files/Java/jdk1.8.0_05/bin</javadocExecutable>
</configuration>
</plugin>
</plugins>
</build>
以及生成的 Javadoc:
所以,如您所见,这个策略对我来说并不奏效。
更新
我刚刚意识到这种变化的结果是在参数描述上使用{@code }(或<code>)标记变得毫无意义。反正它不显示。换句话说,如果你过去喜欢这样做:
/**
* ...
* @param eName the name for the entity or <code>null</code> to use the default
* ...
*/
这根本没有意义。你的null 文字无论如何都不会突出。
2019 年 4 月 19 日更新
上面提到的部分问题已在JDK-8072052 : <dd> part of <dl> list in javadoc should not be in monospace font 中得到修复。在 Java 9 及更高版本中已修复,未向后移植到 Java 8。
【问题讨论】:
-
哇,8 的 javadoc 的可读性确实更差。对答案感兴趣。
-
@AndréStannek。不幸的是,你和我似乎是唯一这么认为的人。我没有在任何地方看到过这个,所以也许大多数人根本不在乎(或者认为这不重要)。令我震惊的是,为什么 JDK 开发人员积极地向后退了一步……在我看来。
-
猜这是一个见仁见智的问题,他们和我们一样有另一个:-(
-
伙计,在参数和 throws 上缺少缩进,另见部分是可怕的。
-
不需要“品味问题”和其他PC东西......因为很明显,他们刚刚跟随了非标准正面和“极简主义”的大字新趋势。在可读性方面,这绝不比 JDK7 中大小适中的 Arial 差。所以我想有人将不得不采用 JDK8 CSS 并对其进行修改。