Java 17模块化项目依赖更新后出现org.jspecify模块找不到的原因
编译报错
module not found: org.jspecify的原因分析 你没直接用org.jspecify但出现这个报错,核心是项目的间接依赖在更新后新增了对该模块的依赖,但它没被正确加载到编译的模块路径中,具体可从这几个角度排查:
- 依赖传递:你更新的某个直接依赖库,新版本引入了org.jspecify作为编译或运行依赖。Maven默认会传递引入这类依赖,但如果该依赖被意外排除、或者Maven依赖解析时没正确拉取,就会导致javac在模块路径上找不到它。
- 依赖范围问题:org.jspecify可能被标记为
test等特殊范围,但测试编译阶段需要它,却因为范围配置错误没被加入到测试编译的模块路径里。 - 模块化配置遗漏:你的
module-info.java里,某个requires语句依赖的模块,在新版本中新增了requires org.jspecify,导致你的项目编译时必须要有这个模块存在,但你没显式引入。 - Maven编译插件问题:你用的maven-compiler-plugin(版本3.13.0)在forked编译模式下,可能没把依赖的模块路径正确传递给子编译进程,导致找不到该模块。
内容的提问来源于stack exchange,提问作者PowerStat
相关产品推荐
相关产品推荐

