javadoc 10.0.2 中模块路径上的多版本 log4j-api-2.11.0.jar

Multi-release log4j-api-2.11.0.jar on the the module-path in javadoc 10.0.2

我正在尝试包含 module-info.java 的 javadoc 代码 requires org.apache.logging.log4j;

我已经包含了来自 Maven Central 的 jar,它与模块路径上的坐标 "org.apache.logging.log4j:log4j-api:2.11.0(这是一个多版本 jar)相匹配。

javac 可以很好地编译代码,但以下简化的 javadoc 命令会输出错误:

javadoc --module-path ./log4j-api-2.11.0.jar -d ~/Desktop ./src/main/java/module-info.java

错误:

error: module not found: org.apache.logging.log4j requires org.apache.logging.log4j;

当我手动将 log4j-api-2.11.0.jar 重新打包为非多版本 jar 时,javadoc 起作用(上面的简化命令输出关于 No public or protected classes found to document 的错误,但我的真实命令起作用,并且该错误表明简化的命令已经超过 module not found 错误)。

javadoc(来自 Oracle JDK 10.0.2+13)是否不支持模块路径上的多版本 jar?

或者 log4j-api-2.11.0.jar 有什么问题可以修复,同时仍将其作为多版本 jar 维护?

正如您在评论中指出的那样,当 module-info.class 驻留在 META-INF/versions/9 中时,这似乎是 javadoc 工具的一个问题。

查看2.11.0 release notes,核心没有太多的实现变化,可以利用org.apache.logging.log4j:log4j-api:2.10.0留在log4j-api 的多版本 jar 并使用 javadoc 工具生成文件。

我可以用 IDE(IntelliJ) 和命令行确认上面的工作。

这是 Javadoc 工具中的错误,已报告给 Oracle。参见 https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8208269