您很快就会意识到 JDK8对 Javadoc 的要严格得多(默认情况下)。(链接-参见最后一个要点)
如果您从未生成任何 Javadoc,那么当然您不会遇到任何问题,但是像 Maven 发布过程和可能您的 CI 构建会突然失败,因为它们在 JDK7中工作得很好。任何检查 Javadoc 工具退出值的操作现在都将失败。与 JDK7相比,JDK8 Javadoc 在 warnings
方面可能也更详细,但这不是这里的范围。我们说的是 errors
!
这个问题的存在是为了收集关于如何解决这个问题的建议。最好的方法是什么?应该在源代码文件中一劳永逸地修复这些错误吗?如果您有一个庞大的代码库,这可能是一项很大的工作。还有别的选择吗?
我们也欢迎你们评论那些现在失败了,以前会通过的故事。
wsimport
工具是用于创建 Web 服务使用者的代码生成器。它包含在 JDK 中。即使您使用来自 JDK8的 wsimport
工具,它仍然会生成源代码 不能用 JDK8的 javadoc 编译器进行编译。
我打开3-4年前的源代码文件,看到这个:
/**
* My very best class
* @author John <john.doe@mine.com>
*/
现在由于 < 字符而失败了。严格地说,这是合理的,但不是很宽容。
HTML 表在你的 Javadoc? 考虑这个有效的 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 工具的“停止世界”(stop-the-world)错误会打败我呢? ?
{@link notexist}
always returns <code>true<code> if ...
相关网址:
优秀的 关于这个话题的博客由 斯蒂芬 · 科尔伯恩。