【发布时间】:2014-04-27 01:12:00
【问题描述】:
您很快就会意识到 JDK8 对 Javadoc 的要求要严格得多(默认情况下)。 (link - 见最后一个要点)
如果您从不生成任何 Javadoc,那么您当然不会遇到任何问题,但是 Maven 发布过程以及您的 CI 构建可能会突然失败,而它们在 JDK7 上运行得很好。检查 Javadoc 工具的退出值的任何操作现在都将失败。与 JDK7 相比,JDK8 Javadoc 在warnings 方面可能也更冗长,但这不是这里的范围。我们在谈论errors!
这个问题的存在是为了收集关于如何处理它的建议。最好的方法是什么?这些错误是否应该在源代码文件中一劳永逸地修复?如果你有一个庞大的代码库,这可能是很多工作。还有哪些其他选择?
也欢迎您对现在失败的故事发表评论。
现在失败的恐怖故事
wsimport 工具
wsimport 工具是用于创建 Web 服务消费者的代码生成器。它包含在 JDK 中。即使您使用 JDK8 中的 wsimport 工具,它仍然会生成源代码 that cannot be compiled with the javadoc compiler from JDK8。
@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 ...
更新
链接:
【问题讨论】:
-
您可以使用
-Xdoclint甚至使用javac告诉它在编译时检查文档... -
@HimanshuBhardwaj。感谢您链接到 Stephen Colebourne 的博客。到目前为止我读过的关于这个主题的最好的文章!
-
另外一个“错误”也是错误的:'bad usage of '>' -- 这是错误的,'>' 在 XML 中是完全可以接受的,除了特定的 ']] >' 不被接受(其中一个字符必须被转义)。只有 '' 确实有助记符 (gt) 为方便起见,但它的使用是完全可选的。
-
我想知道 HTML 4 的合规性而不是 HTML 5 有何不同。就个人而言,我更喜欢简单的标记语言,因为我必须阅读源代码而不仅仅是漂亮的输出;至少对我而言,HTML 的人类可读性是值得商榷的。