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