我已经编写了一个自定义标签库,其中名称以点号开头:
当使用1.7版本的
将标签源代码中的名称更改为
避免冲突:如果您想创建自己的命名空间,则可以使用类似于包使用的点分隔命名约定:com.mycompany.todo。 Oracle将继续创建其名称不包含点的标准标签。您创建的任何标签都将覆盖Oracle定义的同名标签的行为。如果您创建@todo标签或标签,那么即使Oracle稍后创建了相同名称的标准标签,它也始终具有您定义的相同行为。
所以我错过了什么吗?还是这是一个未记录的变化,只是真的很糟糕?因为如果是这种情况,它需要对我的库进行相当大的更改。
.codelet
、.codelet.and.out
等。它是使用JDK 7编译的。当使用1.7版本的
javadoc.exe
生成JavaDoc时,它能够正常工作。但是当使用JDK 8生成时,它会失败,因为:C:\...\Temp.java:5: error: no tag name after @
* {@.codelet mypkg.Temp}`
如果我使用标记解析器(而不是标记解析器代码本身)更改代码为{@codelet mypkg.Temp}
:
C:\...\Temp.java:5: error: unknown tag: codelet
* {@codelet mypkg.Temp}
Note: Custom tags that were not seen: @.codelet
1 error
将标签源代码中的名称更改为
cod.elet
(code.let
不好,因为code
是已存在的标签名称),并使用该新名称,它可以工作。
-tag
选项的JavaDoc工具文档(在该部分底部附近)说明:避免冲突:如果您想创建自己的命名空间,则可以使用类似于包使用的点分隔命名约定:com.mycompany.todo。 Oracle将继续创建其名称不包含点的标准标签。您创建的任何标签都将覆盖Oracle定义的同名标签的行为。如果您创建@todo标签或标签,那么即使Oracle稍后创建了相同名称的标准标签,它也始终具有您定义的相同行为。
所以我错过了什么吗?还是这是一个未记录的变化,只是真的很糟糕?因为如果是这种情况,它需要对我的库进行相当大的更改。
知道了:标签概述文档
cod.elet
(打了个寒战)。 - aliteralmind