JDK8:获取javadoc的JDK7外观

pet*_*erh 17 javadoc maven java-8

与JDK7相比,我发现在JDK8 javadoc中难以阅读新的外观.这是一个并排的例子.

JDK7: JDK7 javadoc看

JDK8: JDK8 javadoc看

JDK8占用了相当多的空间.它现在使用之前使用Arial的DejaVu字体.可能有充分的理由.不知道.

我最大的问题是在"参数"和"引发"部分中,参数与其描述之间不再存在任何视觉差异.它们都是单声道间隔字体.我认为用单声道间隔字体书写描述性文字只是丑陋.单调间隔字体用于标识符,源代码列表等的名称.(随意不同意).

在使用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>  
Run Code Online (Sandbox Code Playgroud)

以及由此产生的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>  
Run Code Online (Sandbox Code Playgroud)

以及由此产生的Javadoc: JDK8 javadoc,JDK7 css

所以,正如你所看到的,这个策略对我没有用.

UPDATE

我刚刚意识到这种变化的结果是在参数描述上使用{@code }(或<code>)标记变得毫无意义.它无论如何都没有显示出来.换句话说,如果你喜欢在过去喜欢这样做:

/**
* ...
* @param eName the name for the entity or <code>null</code> to use the default
* ...
*/
Run Code Online (Sandbox Code Playgroud)

根本就没有意义了.null无论如何,你的文字都不会突出.

dka*_*zel 6

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

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

然后,您可以使用stylesheetfilejavadoc命令行或ant或maven中的属性

来自命令行:

%javadoc -stylesheetfile <path> ...
Run Code Online (Sandbox Code Playgroud)

在蚂蚁:

<javadoc 
        ....
        stylesheetfile="/path/to/stylesheet.css"
        />      
Run Code Online (Sandbox Code Playgroud)

在Maven中(有关详细信息,请参阅Maven的样式表配置页面):

<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>) 
Run Code Online (Sandbox Code Playgroud)

UPDATE

斯蒂芬Colebourne对有关于Java的其他8个重大更改到的Javadoc的文章在这里.显然,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>
Run Code Online (Sandbox Code Playgroud)

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