OSGI版本注释的怪异Javadoc错误(带有JDK12)
随着从 Java 11 到 Java 12 的更改,我们现在在包含 OSGi 版本注释的包信息文件上生成 Javadoc 时看到一个奇怪的错误。
源代码是:
@Version("1.3.0")
package org.apache.jackrabbit.oak.commons;
import org.osgi.annotation.versioning.Version;
错误是:
[ERROR] C:\projects\apache\oak\trunk\oak-commons\src\main\java\org\apache\jackrabbit\oak\commons\package-info.java:17: error: unknown tag: Version
[ERROR] @Version("1.3.0")
[ERROR] ^
是这是 Java 12 中的回归,还是注释的使用方式有问题,或者 Javadoc 的调用方式(通过 maven)是否有问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可能是 Javadoc 错误,因为 Javadoc 将 Java 注释视为 Javadoc 标签。
解决方法 1:
禁用此 Javadoc 标记
解决方法 2:
在每个注释前面添加一个空的 Javadoc 块
Probably a Javadoc bug, because Javadoc considers the Java Annotation as a Javadoc Tag.
Workaround 1:
disable this Javadoc tag
Workaround 2:
add an empty Javadoc block in front of every annotation
修复程序是升级到更新的JDK版本。
该问题影响了JDK 12,并将其固定在JDK 13中,。
同样的问题也影响了OpenJDK 11.0.17,因为引入Javadoc回归的更改已退回。它固定在JDK 11.0.18中。 (请参阅)
简化的repro:
The fix is to upgrade to a newer JDK version.
The issue affects JDK 12, and was fixed in JDK 13 by JDK-8222091: Javadoc does not handle package annotations correctly on package-info.java.
The same issue also affects OpenJDK 11.0.17, because the change that introduced the javadoc regression was backported. It was fixed in JDK 11.0.18. (See https://bugs.openjdk.org/browse/JDK-8295850.)
Simplified repro: