maven resources filter引发的文件损坏

背景

在前面写了如何在SpringBoot应用中获取maven构建时间
但后面上线引发了一个问题
由于项目使用了支付,引入了一些证书文件
但项目一启动就报错

分析

由于maven resources如果开启了filtering
那么会将二进制文件损坏,比如图片、pdf以及本文涉及的证书等
原文如下:

As already mentioned filtering binary files like images,pdf`s etc. could result in corrupted output. To prevent such problems you can configure file extensions which will not being filtered.

解决

不过滤后缀

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.1</version>
                <configuration>
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>crt</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>

不过滤文件

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <excludes>
            <exclude>排除的文件</exclude>
        </excludes>
    </resource>
</resources>

更多推荐