You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven构建含package-info.java项目的测试Javadoc报错如何解决

问题原因

这个报错和你的package-info.java写法、包名拼写没有关系,是环境和工具bug叠加导致的:

  • 你使用的Eclipse Adoptium JDK 11.0.15在Windows环境下存在已知的javadoc工具缺陷:扫描类路径下的package-info.class文件时,会错误使用Windows系统的反斜杠\拼接类全限定名,不符合JVM类名校验规则,最终把正确的类名com.mycompany.foo.bar.baz.package-info识别成了com\mycompany\foo\bar\baz\package-info,触发类文件不匹配的报错。
  • 主源码Javadoc生成时不会提前扫描自身编译输出目录的class文件,所以不会触发问题;而生成测试源码Javadoc时,maven-javadoc-plugin默认会把主源码编译输出目录target/classes加入类路径,工具扫描到该目录下提前编译好的主代码package-info.class时,就会触发上述bug。
可用解决方案

按推荐优先级排序:

  • 升级构建环境的JDK版本:将JDK 11升级到11.0.16及以上的11系列补丁版本,或者升级到JDK 17 LTS版本,该路径分隔符处理bug已经在后续版本中被官方修复,不需要修改项目任何配置即可解决问题。
  • 固定JDK版本无法升级时,调整maven-javadoc-plugin配置:在测试源码对应的Javadoc执行配置中,排除target/classes路径下的package-info.class扫描,或者添加<doclint>none</doclint>配置项关闭严格的类文件校验,即可绕过该报错。
  • 临时规避方案:执行构建前先运行mvn clean清空target目录,不要在同一次构建流程中先完成主源码编译、再立刻生成测试源码Javadoc,不过该方法稳定性差,不建议作为长期方案使用。

内容的提问来源于stack exchange,提问作者Jason Thompson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 21:27:17