ali*_*ind 9 java javadoc taglet java-8
我写了一个自定义的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}`
Run Code Online (Sandbox Code Playgroud)
如果我使用 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
Run Code Online (Sandbox Code Playgroud)
更改taglet源代码中的名称cod.elet
(code.let
因为code
已经存在的taglet名称不好),并使用该新名称,它可以工作.
该-tag
选项的JavaDoc工具文档(在该部分的底部附近)指出:
避免冲突:如果要创建自己的命名空间,则可以使用与包用的类似的点分隔命名约定:com.mycompany.todo.Oracle将继续创建名称不包含点的标准标记.您创建的任何标记都将使用Oracle定义的相同名称覆盖标记的行为.如果创建@todo标记或标记,则它始终具有您定义的相同行为,即使Oracle稍后创建了同名的标准标记.
我在这里错过了一些东西吗?或者这是一个无证的变化,真的很糟糕?因为它需要我的库中有一个很大的变化,如果是这样的话.
仅供参考:Taglet概述文档
那么我在这里错过了什么吗?
好吧,您引用的文档部分是这样说的:
“...那么您可以使用类似于包的点分隔命名约定:com.mycompany.todo”
请注意,它说的是“点分隔”命名约定,而不是“其中带有点的名称”。
请注意,它说“类似于用于包的”。如果您尝试使用“.mypackage”作为包名称,编译器会说“No way!”。
我的解读是您的“.codelet”标签名称不符合文档中规定的标准。因此,Java 8 版本javadoc
已更改为严格执行 taglet 命名规则。从您的角度来看,这是不幸的,但最终问题出在您的 javadoc 注释中,而不是工具中。
归档时间: |
|
查看次数: |
417 次 |
最近记录: |