使用gradle打war包时,包含中文文件名导致war包无法解压的解决办法

在平时的项目工作中使用的是Gradle+idea+git的工具组合,所以在进行项目打包时使用的gradle来完成。

1.使用gradle clean war 命令将项目打包

2.将生成的war包放置在tomcat的webapps目录下即可

但是有时候tomcat在解压war包时会出现一个错误

使用gradle打war包时,包含中文文件名导致war包无法解压的解决办法

这个错误的最常见的原因就是项目中包含中文名称的文件名。

以前的解决办法是直接将中文名称的文件删除或者重命名,但是今天遇到一个项目,因为一些特殊原因导致包含的中文文件名比较多,修改起来很是不方便,那么就必须要把这个问题解决掉。

首先,我尝试使用rar将war包文件打开,发现了其中的中文文件名全部乱码而且文件不全:

使用gradle打war包时,包含中文文件名导致war包无法解压的解决办法

觉得应该是gradle打包时的问题,打包过程中文件丢失或者不能识别?在网上查阅了一些博客后发现找到了一个解决办法。

找到本地gradle的安装路径,修改bin/gradle.bat将其中的DEFAULT_JVM_OPTS设置为

DEFAULT_JVM_OPTS="-Dfile.encoding=UTF-8"

 修改完成后重新打包,项目中的中文文件名也成功识别,tomcat也能够成功解压。

参考博客: http://www.tuicool.com/articles/Ejm2myR