Maven compile阶段删除process-resources复制的资源文件问题咨询
Maven资源文件执行compile后丢失的解决方案
1. 检查Maven版本与Compiler插件
- 执行
mvn -v查看当前Maven版本,部分旧版本的maven-compiler-plugin在compile阶段会错误清理target/classes目录,且未自动触发资源复制。 - 显式指定插件的最新稳定版本,避免默认旧版本的问题,在pom.xml中添加:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> </plugin> </plugins> </build>
2. 确认资源目录结构
- Maven默认的资源目录是
src/main/resources,如果你的资源放在src/resources而非src/main/resources,需要手动配置资源路径:
<build> <resources> <resource> <directory>src/resources</directory> </resource> </resources> </build>
3. 修正命令执行逻辑
- 正常情况下
mvn clean compile会自动先执行process-resources阶段(compile依赖该阶段),若环境中依赖关系异常,直接执行mvn clean process-resources compile,确保资源先被复制到target/classes再执行编译。
4. 清理插件缓存
- 删除本地Maven仓库中compiler插件的缓存目录
~/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin,重新执行命令让Maven重新下载插件,排除缓存损坏导致的异常。
内容的提问来源于stack exchange,提问作者Ahmet Sevki
相关产品推荐
相关产品推荐

