Java 10升级后Javadoc无法链接JDK文档的问题求助
这个问题我之前也碰到过,确实是Java 10过渡时期的一个小疏漏——Oracle的官方Java 10 API文档站点既没有传统的package-list文件,也没提供模块化Javadoc需要的element-list,直接导致Javadoc工具没法解析外部链接。下面给你几个可行的解决办法,按优先级排序:
1. 手动生成并托管自己的package-list
这是最可靠的长期解决方案,步骤也不复杂:
- 从本地Java 10 JDK中提取所有公开包的列表,生成
package-list文件。可以用jdeps工具快速生成:jdeps -list-packages --module-path $JAVA_HOME/jmods | grep -v "jdk.internal" | sort > package-list - 把生成的
package-list文件放到你自己的静态web服务器(比如GitHub Pages、Nginx等)的某个路径下,比如https://your-domain.com/java10-api/ - 修改Maven Javadoc插件的配置,将
link参数指向这个包含package-list的URL:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <link>https://your-domain.com/java10-api/</link> </configuration> </plugin>
2. 使用社区维护的Java 10 API镜像
有些社区站点会补上缺失的package-list文件,你可以直接替换Maven配置中的link参数为这些镜像的URL(注意选择长期维护的源)。
3. 改用本地JDK文档链接(仅本地开发用)
如果只是自己本地生成文档查看,不需要对外发布,可以直接链接到本地JDK安装目录下的文档(前提是你安装JDK时勾选了文档选项):
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <link>file:///${java.home}/docs/api</link> </configuration> </plugin>
4. 升级到Java 11(如果项目允许)
Java 11开始官方API站点恢复了对element-list的支持,而且模块化Javadoc的链接逻辑更完善。如果项目可以兼容Java 11,升级后这个问题会自动消失,同时还能获得Java 11的其他特性支持。
5. 临时抑制链接警告(不推荐)
如果只是想先正常生成文档,暂时忽略链接失效的问题,可以添加-no-link-warnings参数抑制错误提示,但这只是临时 workaround,不能解决链接跳转的问题:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <additionalparam>-no-link-warnings</additionalparam> </configuration> </plugin>
内容的提问来源于stack exchange,提问作者gdejohn
相关产品推荐
相关产品推荐

