我写了一个以点开头的名字的custom taglet library:.codelet,.codelet.and.out等等。它是用JDK 7编译的。
当使用1.7javadoc.exe生成JavaDoc时,它工作得很好。但是当使用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名称),并且使用这个新名称,它可以工作。
用于JavaDoc的 option工具文档(靠近本节底部)声明:
避免冲突:如果您想创建自己的命名空间,那么您可以使用类似于包: com.mycompany.todo的点分隔命名约定。Oracle将继续创建名称不包含点的标准标记。您创建的任何标记都将用Oracle定义的相同名称覆盖标记的行为。如果您创建了@todo标记或taglet,那么它始终具有您定义的相同行为,即使Oracle稍后会创建同名的标准标记。
我是不是漏掉了什么?或者这是一个没有文件记录的改变,真的很糟糕?因为如果是这样的话,我的图书馆需要做很大的改变。
金融时报:Taglet overview docs
发布于 2015-02-25 18:29:28
我是不是漏掉了什么?
好吧,你引用的文档部分说:
“.然后您可以使用类似于包:com.mycompany.todo的点分隔命名约定”
注意,它写的是“点分隔”的命名约定,而不是“有点的名字”。
请注意,它写着“类似于用于包的内容”。如果您尝试使用".mypackage“作为包名,编译器会说”没门!“
我的理解是,您的".codelet“标记名不符合文档中规定的标准。因此,所发生的事情是,Java8版本的javadoc已被更改,以严格执行标签命名规则。从您的角度来看,这是不幸的,但问题最终在于您的javadoc注释,而不是工具。
https://stackoverflow.com/questions/28726294
复制相似问题