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>

浙公网安备 33010602011771号