首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javadoc 10.0.2中module-path上的多版本log4j-api-2.11.0.jar

javadoc 10.0.2中module-path上的多版本log4j-api-2.11.0.jar
EN

Stack Overflow用户
提问于 2018-07-26 01:58:38
回答 2查看 699关注 0票数 3

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

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

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

代码语言:javascript
复制
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时,javadoc可以工作(上面的简化命令会输出一个关于No public or protected classes found to document的错误,但我的实际命令可以工作,并且该错误显示简化的命令已经超过了module not found错误)。

javadoc (来自Oracle 10.0.2+13)不支持模块路径上的多版本jars吗?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-28 07:41:43

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

票数 1
EN

Stack Overflow用户

发布于 2018-07-26 13:38:12

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

看一下2.11.0 release notes,核心没有太多的实现更改,可以利用org.apache.logging.log4j:log4j-api:2.10.0停留在log4j-api的多版本jar上,让它与javadoc工具一起工作来生成文档。

我可以用集成开发环境(IntelliJ)和命令行确认上面的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51525069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档