java编译(打包)完成,导致Excel文件损坏的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_26469555/article/details/89394581
问题描述

在项目中放置一个可供用户登录后下载的excel模版,项目在打包成功后,在target中直接打开excel,发现excel已经损坏。



问题原因

项目在编译或者打包过程中,会对excel进行编译,这样经过文件filter过滤一遍之后,excel文件就损坏了,
具体原因还不清楚,还需要各位大佬具体分析一下。可以利用Maven resource配制中include与exclude的关系来解决这次问题。



问题未解决时的配置

<resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
</resource>


解决后的配置
与是用来圈定和排除某一文件目录下的文件是否是工程资源的。如果与划定的范围存在冲突时,以划定的范围为准。大多数情况下,我们使用和是为了配合实现过滤特定文件的需要。
例如,在一个工程中,src/main/resources目录下都是工程的资源文件,并不需要和再进行划定。但如果我们需要对其中的某一个或这两个文件进行过滤的话,则需要借助和进行配置

<resource>
    <directory>src/main/resources</directory>
    <excludes>
        <exclude>**/*.xlsx</exclude>
    </excludes>
    <filtering>true</filtering>
</resource>
<resource>
    <directory>src/main/resources</directory>
    <includes>
        <include>**/*.xlsx</include>
    </includes>
    <filtering>false</filtering>
</resource>


其中第一段配置声明:在src/main/resources目录下,后缀是.xlsx的文件不是资源文件,其它的资源文件需要被过滤。而第二段配置声明:同样在src/main/resources目录下,后缀是.xlsx的文件是资源文件,但是不会被过滤。

配置完成后,如果重新编辑(打包)没有效果,需要maven claen 或者删除target文件重新编译一遍就可以啦。

在遇到这个问题的时候参考了 浪子艳少(https://blog.csdn.net/win7system/article/details/55519444) 的观点,非常感谢。
 

------------------------------------

 

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值