JDK 8中的Javadoc:Invalid";“不允许使用自动关闭元件”;

JDK 8中的Javadoc:Invalid";“不允许使用自动关闭元件”;,java,maven,javadoc,Java,Maven,Javadoc,当使用JDK 8运行javadoc并收到此错误时,最好的解决方法是什么 对于JDK 8,似乎已经决定像和这样的标记应该生成错误,因为它们是无效的(严格的)HTML 4 我想知道,因为我只是想用maven编译一些java项目,却被这个问题绊倒了。当然,我可以向项目提交一个票证(我想我会),但是如果有一种方法可以禁用这种行为(对于机器),那就太好了。否则,我认为在JDK 8上构建许多项目之前,需要先修复它们,才能保证它们不会出现问题。摘自oracle.com上的“”: javac工具现在支持检查ja

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

对于JDK 8,似乎已经决定像

这样的标记应该生成错误,因为它们是无效的(严格的)HTML 4

我想知道,因为我只是想用maven编译一些java项目,却被这个问题绊倒了。当然,我可以向项目提交一个票证(我想我会),但是如果有一种方法可以禁用这种行为(对于机器),那就太好了。否则,我认为在JDK 8上构建许多项目之前,需要先修复它们,才能保证它们不会出现问题。

摘自oracle.com上的“”:

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

现在我照它说的做了。在JDK7上,“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.
-Xdoclint:(全部|无|[-])[/]
启用或禁用javadoc注释中问题的特定检查,
其中是可访问性、html、缺失、引用或语法之一,
并且是公共的、受保护的、打包的或私有的。
因此,按如下方式运行Javadoc实用程序:

javadoc.exe -Xdoclint:none <other options...>
javadoc.exe-Xdoclint:none

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

对于这两种特殊情况,我认为建议的操作是将它们替换为
。是指向Oracle文档的链接。

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

  • 只需

  • 只需


在一种例外的方式下,修正后一切正常

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

  • 将自动关闭的br标签替换为常规br标签(
    替换为
  • 将空的p标签替换为br标签(

    替换为

  • 确保所有p标签都有内容并已关闭(…with…


Does-Xdoclint:none-work?通过谷歌搜索此选项可以得到一个非常好的链接:链接文章中可能重复的原因与触发此问题的原因不同。相关。从maven获得相同的错误类型:是的,这是正确的。但是,JDK 7的javdoc将使用此选项失败,这意味着您必须检测对新选项的支持。最后,我修复了html。如果项目使用maven,那么您可以使用仅为jdk8激活的配置文件。如果可以的话,最好只是修复HTML并在项目中提交一个bug。最好的建议是@JE42设置
-Xdoclint:none。
使用替换

将导致大量空的p标记警告。我投了赞成票,因为这比其他答案要好,但我还是添加了一个更完整的解决方案作为答案。