使用构建工具gradle打包时,遇到的中文问题和解决方案
来源:互联网 发布:谢馥春198鸭蛋粉 知乎 编辑:程序博客网 时间:2024/05/20 20:02
1、使用gradle clean war 命令将项目打成war包,这一过程gradle没有提示报错。
2、将得到的myapp.war拷贝到tomcat下webapps(部署war包)
3、启动tomcat的时候,发现加载myapp.war失败,错误信息如下:
java.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toString(Unknown Source) at java.util.zip.ZipInputStream.readLOC(Unknown Source) at java.util.zip.ZipInputStream.getNextEntry(Unknown Source) at com.yc.utils.TestZip.extZipFileList(TestZip.java:40) at com.yc.utils.TestZip.main(TestZip.java:21)
这是因为tomcat启动的时候,会将.war文件解压,以文件夹的形式存放在webapps/下。显然出现上面的问题,是因为tomcat解压war失败。将得到的war包用WinRAR软件解压,发现也失败了。这样可以知道:是gradle打出的war包有问题,是损坏的。为啥gradle打的war包有问题了?
我用WinRAR打开(注意不是解压),发现了一个惊讶的结果:有2个含有中文名的文件,没有包含在war中。我将这2个文件手动到myapp.war的对应位置后保存,最后再用winRAR解压,发现能够成功解压。于是得出一个结论:gradle打包的时候会忽略含有中文的目录和文件。
解决方案是: 修改GRADLE_HOME/bin/gradle(windows系统中是gradle.bat)中的变量DEFAULT_JVM_OPTS
DEFAULT_JVM_OPTS="-Dfile.encoding=UTF-8"
修改配置之后重新打包,发现得到的war包中已经包含了名称含有中文的目录和文件。用WinRar解压也是正常的,部署到tomcat也成功了。文件路径中含有中文是一件很麻烦的事儿,也不是最佳编程实践。
0 0
- 使用构建工具gradle打包时,遇到的中文问题和解决方案
- 使用gradle打包时遇到的问题!
- 使用gradle来构建Spring boot时遇到的问题
- Android使用Gradle构建的一些遇到的问题
- 用gradle打包android_apk时遇到的一些问题
- 用gradle打包android_apk时遇到的一些问题
- 构建工具----gradle---可能遇到的问题----Could not reserve enough space for object heap
- Gradle构建工具的学习与使用
- 工具中打包和安装遇到的问题
- 使用angular-cli构建angular2项目时遇到的问题及解决方案
- 使用kettle工具遇到的问题汇总及解决方案
- 关于Jenkins使用Gradle对android项目打包遇到的问题总结
- Android Studio2.2中使用gradle打包apk中遇到的问题
- Gradle中打jar包的方法,Gradle 自动化构建工具,Android Studio 中 Gradle 的使用方法,AndroidStudio使用过程中遇到的bug
- unity 写批量打包工具时遇到的一个问题
- 关于cocos2dx-lua打包apk遇到的download gradle问题
- 使用gradle编译时遇到的一些问题
- springboot 支持 jsp 的写法(分别使用 maven 和 gradle 作为构建工具)
- 连接打开方式
- 具有中国特色的docker折腾记(下)
- 项目5.1
- 嵌入式(embed)Tomcat的使用
- oracle导出数据到文本、从文本导入数据
- 使用构建工具gradle打包时,遇到的中文问题和解决方案
- CodeForces 7D Palindrome Degree
- unity 断点下载
- Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令 详细的
- leetcode:pascal's_triangle_II
- C++字符串分割
- apache与php的通信过程
- 屏蔽一些广告网站
- ubuntu 12.04中安装svn服务器