pom配置资源文件中的二进制文件乱码打不开如excel

这个问题原先出现过,现在由一次花时间解决,再次记录一下

背景:在pom文件中有变量需要在相应的yml和properties中替换一下,但是business目录下有二进制excel文件,这样在替换的时候就会把resource下面的所有文件统一打开过滤,导致二进制文件乱码

解决思路:扫描资源文件并替换的时候,跳过某些二进制文件,就是配置resource相关设置,例如网上说的如下操作:

    <resources>
        <!-- Filter jdbc.properties & mail.properties. NOTE: We don't filter applicationContext-infrastructure.xml, 
            let it go with spring's resource process mechanism. -->
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>jdbc.properties</include>
                <include>mail.properties</include>
            </includes>
        </resource>
        <!-- Include other files as resources files. -->
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <excludes>
                <exclude>jdbc.properties</exclude>
                <exclude>mail.properties</exclude>
            </excludes>
        </resource>
    </resources>

看着思路也是对的,首先把过滤固定的两个文件,但是其它文件都排除了;第二个再把排除的文件补回来并且不过滤‘;但是试验之后发现,第二个貌似没起作用,把静态页面什么的都干掉了,只剩下配置文件了

最终问题解决:

因为资源文件默认路径就是resouces下面,所有可以不写,直接在plugins下加入下面的插件即可,把需要不过滤的后缀加入即可:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>xls</nonFilteredFileExtension>
                        <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
                        <nonFilteredFileExtension>dll</nonFilteredFileExtension>
                        <nonFilteredFileExtension>so</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>
原文地址:https://www.cnblogs.com/aishangyizhihu/p/15293779.html