与JDK7相比,我发现在JDK8 javadoc中很难读懂新的外观。下面是一个并列的示例。
JDK7:
JDK8:
JDK8占用了相当多的空间。它现在使用以前使用过的DejaVu字体。这可能有很好的理由。我不知道。
我最大的问题是在“参数”和“抛出”部分,参数和它的描述之间不再有任何视觉上的区别。它们都是单倍行距的字体。我认为,用等间距字体书写描述性文本实在太难看了。等间距字体用于标识符的名称、源代码清单等。(你可以不同意)。
我还能在使用JDK8 javadoc工具的同时恢复JDK7风格吗?
我希望是像javadoc -stylesheet jdk7.css
这样的东西,其中jdk7.css
是包含在JDK8中的东西。此外,如果我决定自己定制css (这不是我的事,但可能没有其他解决方案),我将不愿确保新样式表在企业中的每一台构建服务器上都可用。也许有一个Maven解决方案可以解决这个问题?
可能的解决方案?
有人建议(在下面)将JDK7 javadoc css与Javadoc工具一起使用,看看这是否会带回一些符合JDK8条件的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:
接下来,尝试将javadoc 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:
所以,正如你所看到的,这个策略对我不起作用。
更新
我刚刚意识到,这种更改的结果是在参数描述上使用{@code }
(或<code>
)标记变得毫无意义。不管怎么说它都不会显示出来。换句话说,如果你过去喜欢这样做的话:
/**
* ...
* @param eName the name for the entity or <code>null</code> to use the default
* ...
*/
这样做已经没有意义了。您的null
文本无论如何都不会突出显示出来。
更新2019-04-19
上面提到的部分问题已经在JDK-8072052 : part of list in javadoc should not be in monospace font中修复了。已在Java 9及更高版本中修复,不能向后移植到Java 8。
https://stackoverflow.com/questions/24554762
复制相似问题