代码之家  ›  专栏  ›  技术社区  ›  XDR

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

  •  3
  • XDR  · 技术社区  · 7 年前

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

    我包括了来自Maven Central的与坐标匹配的罐子 "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
    

    错误:

    错误:找不到模块:org.apache.logging.log4j 需要org.apache.logging.log4j;

    当我手动重新包装时 log4j-api-2.11.0.jar 作为一个非多版本jar 爪哇文 工作(上面的简化命令输出一个关于 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进行维护的同时可以修复它?

    2 回复  |  直到 7 年前
        1
  •  1
  •   rgoers    7 年前

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

        2
  •  0
  •   Nicolai Parlog    7 年前

    正如你在评论中指出的,这似乎是 javadoc module-info.class 居住在 META-INF/versions/9 .

    看着 2.11.0 release notes ,核心没有太多实现更改,可以使用 org.apache.logging.log4j:log4j-api:2.10.0 呆在多释放罐里 log4j-api 让它工作 爪哇文 生成文档的工具。

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