Maven打包后,resources目录里的PDF空白问题
问题说明
Spring boot项目,项目启动后的Target文件夹内的classes目录下,pdf文件空白,并且打包后,jar文件内的pdf文件也是空白的。
原因分析
经过查询,发现是因为Maven的pom.xml
文件配置了filtering导致的,配置如下:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
这是Maven提供的一种过滤机制,支持resources目录下的文件复制到target目录时,替换资源文件中的占位符。
例如在resources目录下创建文件hello.txt
,文件内容为:
Hello ${name}
当配置了filtering后,文件中的占位符将被替换。
解决办法
两种解决办法,简单粗暴的当然是将filtering改为false。或是将pdf文件过滤,配置以下plugin。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
配置完成后,记得update项目。