Checkstyle规则JavadocStyle不允许使用标签<u>
。根据文档,这些检查是基于可从Sun获取的DocCheck doclet执行的检查模式。不幸的是,我没有在任何地方找到DocCheck。我也没有找到有关Javadoc中允许使用的HTML标记的官方文档。是否存在?
Checkstyle规则JavadocStyle不允许使用标签<u>
。根据文档,这些检查是基于可从Sun获取的DocCheck doclet执行的检查模式。不幸的是,我没有在任何地方找到DocCheck。我也没有找到有关Javadoc中允许使用的HTML标记的官方文档。是否存在?
Javadoc仅允许使用HTML标签的子集。
Javadoc的doclint组件强制执行此限制。您可以通过传递-Xdoclint:none
到javadoc来禁用所有doclint警告,但是您应该考虑修复您的Javadoc注释,否则生成的HTML API文档可能会看起来很糟糕或者可能会省略内容。(我通常使用-Xdoclint:all,-missing
来获取有关除缺少Javadoc @
标记之外的所有内容的警告。)
我没有找到doclint允许使用的标签的公共文档,但是这里是它允许的HTML标签列表,我从JDK的文件.../doclint/HtmlTag.java
中获得了这些信息。
Java 17
A
ABBR
ACRONYM
ADDRESS
ARTICLE
ASIDE
B
BDI
BIG
BLOCKQUOTE
BODY
BR
CAPTION
CENTER
CITE
CODE
COL
DD
DEL
DFN
DIV
DT
EM
FONT
FIGURE
FIGCAPTION
FRAME
FRAMESET
H1
H2
H3
H4
H5
H6
HEAD
HR
HTML
I
IFRAME
IMG
INS
KBD
LI
LINK
MAIN
MARK
META
NAV
NOFRAMES
NOSCRIPT
P
Q
S
SAMP
SCRIPT
SECTION
SMALL
SPAN
STRIKE
STRONG
STYLE
SUB
SUP
TD
TEMPLATE
TH
TIME
TITLE
TT
U
UL
WBR
VAR
Java 8
A
B
BIG
BLOCKQUOTE
BODY
BR
CAPTION
CENTER
CITE
CODE
DD
DFN
DIV
DL
DT
EM
FONT
FRAME
FRAMESET
H1
H2
H3
H4
H5
H6
HEAD
HR
HTML
I
IMG
LI
LINK
MENU
META
NOFRAMES
NOSCRIPT
OL
P
PRE
SCRIPT
SMALL
SPAN
STRONG
SUB
SUP
TABLE
TBODY
TD
TFOOT
TH
THEAD
TITLE
TR
TT
U
UL
VAR
Java 9
JDK 9 允许使用不同于 JDK 8 的一组标签。以下是两个 JDK 版本的标签列表,其中包含仅在其中一个 JDK 中允许使用的标签的注释。
A
BIG // JDK 8 only
B // JDK 8 only
BLOCKQUOTE
BODY
BR
CAPTION
CENTER
CITE // JDK 8 only
CODE
DD
DFN // JDK 8 only
DIR // JDK 9 only
DIV
DL
DT
EM
FONT
FOOTER // JDK 9 only
FRAME // JDK 8 only
FRAMESET // JDK 8 only
H1
H2
H3
H4
H5
H6
HEAD
HEADER // JDK 9 only
HR
HTML
I
IFRAME // JDK 9 only
IMG
INPUT // JDK 9 only
LI
LINK
LISTING // JDK 9 only
MAIN // JDK 9 only
MENU
META
NAV // JDK 9 only
NOFRAMES // JDK 8 only
NOSCRIPT
OL
P
PRE
SCRIPT
SECTION // JDK 9 only
SMALL
SPAN
STRONG
SUB
SUP // JDK 8 only
TABLE
TBODY
TD
TFOOT // JDK 8 only
TH
THEAD // JDK 8 only
TITLE
TR
TT
U // JDK 8 only
UL
VAR // JDK 8 only
在 Javadoc 注释中,对 HTML 的使用没有实际限制。Javadoc documentation 表示:
注释使用 HTML 编写 - 文本必须用 HTML 编写,这意味着它们应该使用 HTML 实体并且可以使用 HTML 标签。您可以使用浏览器支持的任何版本的 HTML; 我们编写了标准 doclet 来生成符合 HTML 3.2 规范的代码,包括层叠样式表和框架(文档注释之外)。 (由于框架集的存在,我们在每个生成的文件前加上“HTML 4.0”)。
允许使用的 HTML 标签列表是硬编码在 JavadocStyle Checkstyle 检查中的(通过查看 Checkstyle 5.6 源代码进行验证)。 因此,如果您希望保留其它好的属性并继续使用该检查,您将不得不使用受限制的 HTML 标签集合。解决下划线问题的一种方法是使用 CSS(允许使用),如下所示:
<span style="text-decoration:underline;">underlined text</span>
<u>
元素已经在Checkstyle 5.8中被明确添加到硬编码的标签列表中。该列表仍然无法修改,但是这个特定问题已经得到解决。 - barfuin<del>
但是没有起作用,而<s>
却解决了问题,感谢您的评论。 - Basheer AL-MOMANI
<script>
标签来实现语法高亮,而是使用Doclet。它是一种Java代码,可以调用Java Doclet API“来指定Javadoc工具的输出内容和格式”。 - George Pantazes