执行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
相关产品推荐
相关产品推荐

