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

如何配置Maven使用指定JDK运行Spring Boot项目单元测试

问题根因

测试阶段出现JDK版本不兼容,核心是两个配置问题:

  1. 你使用的maven-surefire-plugin 3.0.0-M7是里程碑测试版,存在toolchains自动识别的已知缺陷
  2. 配置里的JDK vendor值填的是sun,但Ubuntu源安装的OpenJDK对应的vendor标识是openjdk,插件匹配不到toolchains中定义的JDK18,就会默认回退到启动Maven本身的JDK11运行测试,最终报class版本不兼容错误。
解决方案

不需要硬编码JDK路径,按以下步骤调整配置即可:

1. 确认全局toolchains配置

检查用户目录下.m2/toolchains.xml中的JDK配置,确保vendor值和实际安装的JDK类型匹配,OpenJDK配置参考如下:

<?xml version="1.0" encoding="UTF-8"?>
<toolchains>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>18</version>
      <vendor>openjdk</vendor>
    </provides>
    <configuration>
      <jdkHome>/usr/lib/jvm/java-18-openjdk-amd64</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

2. 升级插件版本并修正项目内配置

将两个插件升级到稳定版,修正vendor值,不需要额外给surefire配置JVM路径,插件会自动从toolchains上下文获取对应版本JDK运行测试,pom.xml中插件配置参考如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-toolchains-plugin</artifactId>
  <version>3.1.0</version>
  <executions>
    <execution>
      <goals>
        <goal>toolchain</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <toolchains>
      <jdk>
        <version>18</version>
        <vendor>openjdk</vendor>
      </jdk>
    </toolchains>
  </configuration>
</plugin>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>3.1.2</version>
</plugin>

可选:单独指定surefire使用的toolchain

如果不想依赖全局toolchains的自动匹配,也可以直接在surefire插件中显式指定要使用的JDK toolchain规则,同样不需要硬编码路径,配置如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>3.1.2</version>
  <configuration>
    <jdkToolchain>
      <version>18</version>
      <vendor>openjdk</vendor>
    </jdkToolchain>
  </configuration>
</plugin>
验证方式

执行mvn clean install时加-X参数开启debug日志,搜索surefire插件启动参数中的java命令路径,确认指向JDK18的安装路径即配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:25:34