Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on project myweb: Cannot create resource output directory: D:\Work\mine\MyWeb\target\classes -> [Help 1]
时间: 2025-05-28 14:42:35 AIGC 浏览: 27
### 问题分析
Maven 构建失败的原因在于 `maven-resources-plugin:3.2.0:resources` 执行时遇到了 Java 版本不兼容的问题。具体表现为,构建工具尝试加载的类文件版本为 61.0(对应 JDK 17),而当前运行时环境仅支持最高版本 52.0(JDK 8)。这表明 Maven 插件或其依赖项是在较高版本的 JDK 上编译的,但实际运行环境中并未满足这一需求。
Spring Boot Maven Plugin 的 `repackage` 功能也受到影响,进一步说明整个构建流程中存在多个组件对高版本 JDK 的依赖。
---
### 解决方案
#### 方法一:升级 JDK 到兼容版本
最直接的方式是将开发环境和运行时环境升级到至少 JDK 11 或更高版本。这是因为现代 Maven 插件(如 `maven-resources-plugin:3.2.0` 和 Spring Boot Maven Plugin)通常需要 JDK 11 及以上的支持[^1]。
验证并设置 JDK 版本的操作如下:
```bash
java -version
```
在 Maven 配置中明确指定所需的 JDK 版本:
```xml
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<java.version>11</java.version>
</properties>
```
此外,确保本地安装的 JDK 是最新的稳定版本,并将其路径正确配置到系统环境变量中。
---
#### 方法二:降级插件版本
如果无法立即升级 JDK,则可以考虑降级相关插件至与 JDK 8 兼容的版本。例如,将 `maven-resources-plugin` 的版本回退到较低版本(如 3.1.0),该版本仍然支持 JDK 8[^2]。
更新 `pom.xml` 中的相关部分:
```xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>
</build>
```
同样地,对于 Spring Boot Maven Plugin,也可以指定一个兼容 JDK 8 的版本(如 2.7.x 系列)[^4]:
```xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.9</version>
</plugin>
</plugins>
</build>
```
---
#### 方法三:调整 Maven Toolchains 配置
通过 Maven 的 `toolchains` 机制,可以在同一台机器上管理多种 JDK 并自动切换。创建或编辑 `${USER_HOME}/.m2/toolchains.xml` 文件,添加以下内容:
```xml
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>11</version>
<vendor>oracle</vendor>
</provides>
<configuration>
<home>/path/to/jdk-11</home>
</configuration>
</toolchain>
</toolchains>
```
随后,在 `pom.xml` 中启用 toolchains 支持:
```xml
<profiles>
<profile>
<id>jdk-toolchain</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<maven.compiler.toolchain>true</maven.compiler.toolchain>
</properties>
</profile>
</profiles>
```
这种方式允许开发者在同一项目中灵活切换不同的 JDK 版本,而不必手动更改全局环境变量。
---
### 总结
上述三种方法各有优劣,推荐优先选择 **方法一** 升级 JDK 至 11 或更高版本,以获得更好的性能和支持。如果受限于特定环境条件,则可选用 **方法二** 或 **方法三** 实现临时解决方案。
---
###
阅读全文
相关推荐



















