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

执行mvn命令遇Spotless Maven插件API兼容错误求助

解决办法

报错核心是Maven运行时使用的JDK版本低于Spotless插件要求的版本(插件编译依赖Java 11,而当前Maven实际用的是Java 8),即便项目结构里设了JDK 17,Maven仍可能调用旧版本JDK执行。以下是具体修复步骤:

1. 检查IntelliJ中Maven的运行JDK配置

  • 打开IntelliJ的File > Settings(Mac端为IntelliJ IDEA > Settings)
  • 依次进入Build, Execution, Deployment > Build Tools > Maven > Runner
  • 在JRE下拉菜单中选择已配置的JDK 17,保存设置后重新执行命令

2. 验证系统环境的Java版本

  • 打开终端执行以下命令,确认输出均为Java 17:
    java -version
    mvn -v
    
  • 如果版本不符,调整系统的JAVA_HOME环境变量指向JDK 17,并更新PATH确保该版本优先被调用

3. 确认项目pom.xml的编译配置

  • 在pom.xml中确保maven-compiler-plugin指定了正确的Java版本:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
            <source>17</source>
            <target>17</target>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
    

4. 清理Maven本地缓存

  • 删除本地Maven仓库中Spotless插件的缓存目录:~/.m2/repository/com/diffplug/spotless
  • 重新执行mvn clean install,让Maven重新下载适配当前JDK的插件版本

5. 强制指定Spotless插件的JVM参数(可选)

  • 如果上述方法无效,可在pom.xml的Spotless插件配置中添加Java版本参数:
    <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>2.39.0</version>
        <executions>
            <execution>
                <goals>
                    <goal>apply</goal>
                </goals>
            </execution>
        </executions>
        <properties>
            <maven.compiler.source>17</maven.compiler.source>
            <maven.compiler.target>17</maven.compiler.target>
        </properties>
    </plugin>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:16:13