今天在做excel导出功能的时候,发现老是获取不到resources下的excel文件。
报错:
java.io.FileNotFoundException: class path resource [templates/黑招Excel模版.xlsx] cannot be resolved to URL because it does not exist
一开始以为是我写的用来获取文件的方法有问题,然后各种百度,用了好多种方法都不行(还是对源码不了解啊)。突然想到这些文件都要先编译到classpatch下的,它找不到我的文件是不是因为没编译呢?果然,classes下除了一些application.yml文件,其他文件都没编译过来。那为什么呢?
百度后总结:maven构建项目的时候不会自动的把resources下的文件都编译,你需要告诉maven你需要编译什么文件。
修改pom文件,告诉maven需要编译.xlsx文件:
<build>
<finalName>recruit-service</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.xlsx</include>
</includes>
</resource>
</resources>
</build>