JDK 8中的Javadoc:无效的"自闭元素"

JE4*_*E42 53 java javadoc maven

使用JDK 8运行javadoc时遇到的最佳解决方法是什么,并且收到此错误.

似乎对于JDK 8,已经确定标签喜欢<br />并且<p />应该生成错误,因为它们是无效的(严格的)HTML 4. 请参阅讨论JDK邮件列表这里

我想知道,因为我只想使用maven编译一些java项目并在这个问题上绊倒.当然,我可以使用该项目提交一张票(我想我会这样),但是如果有一种方法可以禁用这种行为(对于一台机器),那将会很棒.否则,我希望在没有问题的情况下在JDK 8上构建之前需要修复很多项目.

Tav*_*avo 26

对于这两个特殊情况,我认为建议的行动是用它们代替<p>.是Oracle文档的链接.


Xel*_*ian 18

要删除javaDocs中的错误,只需替换:

  • <p/> 只是 <p>
  • <br/> 只是 <br>

经过例外修正后,一切正常.


Tim*_*mos 13

摘自oracle.com的" JDK 8中的新功能 ":

javac工具现在支持检查javadoc注释的内容,以查找可能导致运行javadoc时生成的文件中的各种问题(例如无效的HTML或可访问性问题)的问题.该功能由新的-Xdoclint选项启用.有关更多详细信息,请参阅运行"javac -X"的输出.此功能也可在javadoc工具中使用,默认情况下在此处启用.

现在我做了它告诉我的事情.在JDK 7上,"javac -X"的输出未提及-Xdoclint选项.但是,在JDK 8上,它给出了:

 -Xdoclint:(all|none|[-]<group>)[/<access>]
    Enable or disable specific checks for problems in javadoc comments,
    where <group> is one of accessibility, html, missing, reference, or syntax,
    and <access> is one of public, protected, package, or private.
Run Code Online (Sandbox Code Playgroud)

因此,运行Javadoc实用程序如下:

javadoc.exe -Xdoclint:none <other options...>
Run Code Online (Sandbox Code Playgroud)

在我的脚本中,使用此选项消失了您提到的错误.


Ral*_*och 5

虽然可以使用 -Xdoclint 选项禁用错误检查,但它不会修复问题,只会隐藏问题。为了制作有效的 HTML4 文档,以下替换是正确的。

  • 用常规 br 标签替换自闭合 br 标签(<br /> 与 <br>)
  • 用 br 标签替换空的 p 标签(<p /> 与 <br>)
  • 确保所有 p 标签都有内容并关闭(<p>... with <p> ...</p>)