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

Maven执行test-compile报错:找不到org.codehaus.stax2模块

问题描述

能成功执行mvn clean install构建项目,但直接执行mvn test-compile -X时出现module not found: org.codehaus.stax2错误。

已完成的排查:

  • 本地M2仓库存在该依赖的多个版本
  • mvn dependency:list显示模块已被正常解析
  • mvn test -X日志中可见该依赖在类路径内
  • IntelliJ IDEA可正常定位到该依赖及其module-info.java文件

特殊现象:

  • 执行mvn clean test后可正常运行测试
  • 直接执行mvn test-compile,或执行mvn clean package后再执行mvn test-compile,仍会触发相同错误
解决方案

1. 明确指定依赖版本,解决多版本冲突

在项目pom.xml中强制声明org.codehaus.stax2的具体版本,避免Maven依赖解析时选择不兼容的版本:

<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>stax2-api</artifactId>
    <version>4.2.1</version> <!-- 替换为你验证过可用的版本 -->
    <scope>test</scope> <!-- 若仅测试阶段需要则添加此配置 -->
</dependency>

2. 检查测试阶段的依赖范围

部分依赖可能被设置为runtime等非test/compile范围,导致test-compile阶段无法加载。执行以下命令查看测试阶段的依赖树,确认目标依赖是否存在:

mvn dependency:tree -Dscope=test

3. 清理依赖缓存并重新解析

Maven的本地仓库缓存可能存在损坏或不一致,执行以下操作彻底清理并重新拉取依赖:

mvn clean install -Dmaven.clean.failOnError=false
rm -rf ~/.m2/repository/org/codehaus/woodstox/stax2-api/
mvn dependency:resolve -Dscope=test

4. 检查Maven编译器插件的JPMS配置

若项目使用JPMS模块系统,需确保maven-compiler-plugin的配置正确包含测试模块的依赖路径:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <source>17</source> <!-- 替换为项目实际使用的JDK版本 -->
        <target>17</target>
        <modulePath>${project.testClasspathElements}</modulePath>
    </configuration>
</plugin>

5. 对比阶段日志定位差异

对比mvn test-compile -X和mvn test -X的完整日志,重点关注类路径构建和依赖解析部分,找出test-compile阶段缺失依赖的具体原因。

内容的提问来源于stack exchange,提问作者Pieter Benjamin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:27:18