Maven 配置filter导致Excel文件损坏的问题
来源:互联网 发布:澳门mac专柜 编辑:程序博客网 时间:2024/05/21 18:33
问题描述:
系统内原本有个功能,是导出excel的报表。这个功能原本是好的。后来变更过一些配置以后,发现这个功能出问题了。也就是说,模板的格式预先设置好了,然后读取模板的流,写入数据,再输出现在这个功能出问题了,经过排查,发现是部署到web容器以后,这两个excel模板已经损坏了。对比分支,发现之前的部署并不会导致excel模板损坏
经过再次的排查,发现是因为使用了maven的filter引起的:
<resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include><include>**/*.tld</include><include>**/*.doc</include></includes><filtering>true</filtering></resource></resources>
使用maven的filter的目的是为了每次部署的时候根据maven命令的不同选择不同的配置文件,重写db.properties。而不需要每次都去修改数据库连接等配置。从filter的配置中可以看到,目标dir是src/main/resources目录,这个目录下就包含了两个excel文件。不清楚是何原因,这样过滤一遍之后,打出来的war包,excel文件就损坏了。
以上问题的描述是我借用一位仁兄的写的(http://blog.csdn.net/pein_zero/article/details/52767311),因为自己也遇到类似的问题,虽然给出了一个解决方法,但不是我想要的,为了解决此问题,我就围绕如何不改目录(src/main/resources)的情况下仍能使用excel文件。主要症结就在于 excel文件不能经过过滤器过滤。这就需要借助于<excludes>节点的灵活使用。
<project> ... <build> ... <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <excludes> <exclude>**/*.xml</exclude> </excludes> </resource> ... </resources> ... </build> ... </project>
1.在src/main/resources目录下,xml文件都是资源文件,且需要被过滤
2.在src/main/resources目录下,除了xml文件以外的其他文件,也是资源文件,但它们不需要被过滤
基于上述的理解,做出如下的配置
<resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include><include>**/*.tld</include><include>**/*.doc</include></includes><filtering>true</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xlsx</include><include>**/*.xls</include></includes><excludes><exclude>**/*.properties</exclude><exclude>**/*.xml</exclude><exclude>**/*.tld</exclude><exclude>**/*.doc</exclude></excludes><filtering>false</filtering></resource>
此时,你在发布项目的时候发现,好像没有什么效果,记住,你必须首先重写编译一下,alt+F5 和maven claen,此时你在发布项目的时候,获取文件变得正常啦,没有损坏。ok,问题解决~
1 0
- Maven 配置filter导致Excel文件损坏的问题
- Maven filter 导致打包以后的excel文件损坏的问题
- Maven打war包以后excel文件损坏的问题
- Oracle表空间文件损坏导致的数据库异常关闭并启动失败问题的解决方法
- npoi读写excel导致excel文件格式损坏
- Excel版本导致的问题?
- 通过Ftp put命令上传导致文件损坏的解决办法
- 集群磁盘损坏导致hadoop文件丢失的概率计算
- 关于maven的pom文件配置问题
- 遇到问题---java---myeclipse中maven项目引用另一个导致的resource文件混乱的问题
- ecside filter配置的问题
- Spring 的filter配置问题
- oracle 参量文件损坏导致一系列问题
- Maven的Pom文件中的隐式依赖导致Jar包冲突的问题
- jxl导入大容量excel文件导致内存溢出的问题
- mybatis--maven默认不会将java下xml文件打包至classpath导致的问题
- 上传图片文件遇到的文件损坏问题
- Maven环境配置及pom.xml文件遇到的问题
- 2017.2.17日记
- Nginx 的安装
- 解决ionic中运用mobiscroll插件输入框内容重置的实现--clear()
- HDFS问题
- POJ 2983 Is the Information Reliable(差分约束系统 spfa判负环)
- Maven 配置filter导致Excel文件损坏的问题
- Crackme 3
- 开始编程之旅
- 【BZOJ 4299】 Codechef FRBSUM 主席树
- 『设计模式』之小试牛刀
- 21. Merge Two Sorted Lists
- 前端工程师不得不知道的ES6新特性(一)
- Ubuntu hostname修改
- ZOJ3359【阅读理解】