gpt4 book ai didi

maven - JDK8 : Getting back the JDK7 look for javadoc

转载 作者:行者123 更新时间:2023-12-03 13:36:34 26 4
gpt4 key购买 nike

与 JDK7 相比,我发现很难阅读 JDK8 javadoc 中的新外观。
这是一个并排的例子。
JDK7:
JDK7 javadoc look
JDK8:
JDK8 javadoc look
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 项目的源代码完成了我的测试。我只使用源代码,而不是他们的 POM。这是为了确保我知道我的工作是正确的。
好的,首先 - 供引用 - 这是由所有 JDK7 工具链(JDK7 javadoc 工具,JDK7 css)生成的 Javadoc。这是POM片段:

<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 javadoc, JDK7 css
接下来尝试使用JDK7 css配合JDK8 javadoc工具。这是POM片段:
<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:
JDK8 javadoc, JDK7 css
所以,正如你所看到的,这个策略对我来说并不奏效。
更新
我刚刚意识到这种变化的结果是使用 {@code } 变得毫无意义。 (或 <code> )参数描述上的标记。反正它不显示。换句话说,如果你过去喜欢这样做:
/**
* ...
* @param eName the name for the entity or <code>null</code> to use the default
* ...
*/
根本没有意义了。您的 null无论如何文字都不会突出。
更新 2019-04-19
上述部分问题已在 JDK-8072052 : <dd> part of <dl> list in javadoc should not be in monospace font 中修复。 .在 Java 9 及更高版本中已修复,未向后移植到 Java 8。

最佳答案

Java 7 的 Javadoc 中使用的 css 可以在这里找到:

http://docs.oracle.com/javase/7/docs/api/stylesheet.css

然后您可以使用 stylesheetfile来自 javadoc 命令行、ant 或 maven 的属性

从命令行:

%javadoc -stylesheetfile <path> ...

在 Ant 中:
<javadoc 
....
stylesheetfile="/path/to/stylesheet.css"
/>

在 Maven 中(参见 Maven's stylesheet configuration page for more details):
<reporting> (or <build>)
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
...
<configuration>
<stylesheetfile>${basedir}/path/to/your/stylesheetfile.css</stylesheetfile>
...
</configuration>
</plugin>
</plugins>
...
</reporting> (or </build>)

更新

Stephen Colebourne 有一篇关于 Java 8 中 Javadoc 的其他重大更改的文章 here .显然,doclint 现在强制执行 HTML 4 如果链接损坏或不是 100% 正确的 HTML 4,则不会链接。您可以使用 -Xdoclint:none 将其关闭作为附加参数。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</plugin>
</plugins>

关于 <code>参数描述中的标签,我也确实看到了。看起来 javadoc 中的参数描述现在总是等宽的,所以您不再需要代码标签了吗?

关于maven - JDK8 : Getting back the JDK7 look for javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com