你很快会意识到,在Javadoc方面,JDK8默认情况下更加严格。(链接 - 参见最后一条)
如果你从未生成过任何Javadoc,那么当然不会遇到任何问题,但是像Maven发布过程和可能的CI构建之类的东西将会突然失败,而它们在JDK7中运行得非常好。任何检查Javadoc工具退出值的东西都将无法通过。JDK8 Javadoc可能也比JDK7在警告方面更加冗长,但这不是本文的重点。我们正在谈论错误!
此问题旨在收集有关如何处理此问题的建议。最好的方法是什么?这些错误是否应该在源代码文件中修复?如果您有一个庞大的代码库,这可能需要大量的工作。还有哪些其他选项?
欢迎您在评论中分享以前可以通过的故事。
现在失败的恐怖故事
wsimport工具
wsimport
工具是用于创建Web服务消费者的代码生成器。它包含在JDK中。即使您使用来自JDK8的wsimport
工具,它仍然会生成源代码无法使用JDK8的javadoc编译器编译。
@author标签
我打开了3-4年前的源代码文件,看到这样的内容:
/**
* My very best class
* @author John <john.doe@mine.com>
*/
由于包含了<符号,因此现在失败了。严格来说这是正当的,但不够宽容。
HTML表格
Javadoc中使用HTML表格?考虑使用以下有效的HTML:
/**
*
* <table>
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
现在出现错误消息no summary or caption for table
。一个快速的解决方法是像这样:
/**
*
* <table summary="">
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
但我不明白为什么Javadoc工具要停止所有程序来报告错误?
现在更容易发现的问题
- 无效链接,例如
{@link notexist}
- 格式不正确的HTML,例如
always returns <code>true<code> if ...
更新
链接:
由Stephen Colebourne撰写的优秀博客文章。
javac
时使用“-Xdoclint”指令,让编译器在编译时检查文档。 - Holger