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

问题描述

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

问题原因

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

问题未解决时的配置

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

解决后的配置

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


	src/main/resources
	
		**/*.xlsx
	
	true


    src/main/resources
    
        **/*.xlsx
    
    false


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

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

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

你可能感兴趣的:(java配置)