Play1.2.7 完整打包,超级缩短完整打包所耗费的时间
来源:互联网 发布:网络项目实施方案 编辑:程序博客网 时间:2024/06/04 18:14
之前推出了局部打包的工具,在低版本时对环境有一定的依赖,在最近推出的 4.1.0 版本中`,有些朋友发现采用局部工具打包后没有产生预编译后的HTML文件,此方式在公司也试用了段时间,稳定运行,想想也差不多可以抽时间分享并给大家讲解下了。
闲话少说,进入思考模式
Q:为什么推出全量打包?
A:采用局部打包后,总会有些奇怪的问题产生,重新全量打包后,又消失了。发生几次后,总监发怒啦,要求全量打包,想想文件多了后打全量得20多分钟啊,难受,想苦啊,然后心底里就有了快速全量打包的主意。
Q: 快速全量打包的思路?
A:1.看过预编译文件内容的朋友都知道这是加密的,那么是否可在底层处理,打包时不加密,使用时不解密。此思路看似简单,深似水啊。搞了几个周末以失败告终
2.取消打包Html文件(在之前的试验中,因Html文件多,编译时间过长);
按此思路寻找源码,上天不负苦心人啊,找到了线索,原来预编译文件找不到是支持动态编译的
阶段一,初步版本:打包Html时,全部跳过去,不处理Html文件的编译,删除开发、测试、生产环境的 precompiled/templates
play.templates.TemplateLoader#getAllTemplate 修改此文件后,替换初始Jar包中的此 Class 类 (不想改的同学可直接使用局部打包工具4.1.0 中的,阶段三有地址)
TemplateLoader.load(play.vfs.VirtualFile)
阶段二,进一步缩短时间:
使用阶段一后,确实缩短了大量的时间,但play准备war包的时间,还得好几分钟,重点上传至服务器时,大包,又得多耗费不少时间
因日常使用,我们都不会去上传整个WAR包,主要是java html js css 等文件,有兴趣的朋友可做如下改动
1.采用直接命令打包,不使用Play包装后的编译模式
2.打包成功后,自己写脚本组装升级包,减少包的大小
阶段三:升级现有的局部打包工具,兼容最新方案的实施
http://download.csdn.net/detail/fasttime/9687854
play1.2.7 局部更新包生成器_4.1.0
注:
开发、测试环境可使用局部打包工具,生产环境不建议使用局部打包。
2017012更新 windows下使用说明 (有兴趣的可集成至 linux 中,配合 jenkins 使用):
1.将 play-1.2.7.jar (3rd_tools中有) 替换本地的 play jar包
2.替换以下命令,切记:是全量替换
a) java -javaagent:D:\develop\java\play_framework\play-1.2.7/framework/play-1.2.7.jar -Dprecompile=yes -DskipTemplates=true -XX:-UseSplitVerifier -Dfile.encoding=utf-8 -XX:CompileCommand=exclude,jregex/Pretokenizer,next -Xdebug -Xrunjdwp:transport=dt_socket,address=0,server=y,suspend=n -Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512m -Dplay.debug=yes -classpath D:\develop\workspace\framework_play\framework_play/conf;D:\develop\java\play_framework\play-1.2.7/framework/play-1.2.7.jar;D:\develop\workspace\framework_play\framework_play/lib/*;D:\develop\java\play_framework\play-1.2.7/framework/lib/*; -Dapplication.path=D:\develop\workspace\framework_play\framework_play -Dplay.id='' play.server.Server
b) D:\develop\java\play_framework\play-1.2.7/framework/ 替换成你本地的Play路径
c) D:\develop\workspace\framework_play\framework_play 替换成你本地的项目路径
3.在 cmd 窗口中,执行第二步的命令(替换路径后的命令)注:java环境变更需要是1.6版本
4.打包完后在 D:\develop\workspace\framework_play\framework_play\precompiled 找到预编译文件。注:执行第三步后,只会生成 precompiled \java 目录,如存在 precompiled/templates请删除
5.手工选择资源进行压缩升级包,注:采用此方式第一次部署时,一定要删除原来的 precompiled/templates目录,后续此方式打包更新,都不会存在 precompiled/templates目录
6.针对此更新方式的局部更新生成器下载下址:
a) http://download.csdn.net/detail/fasttime/9687854
- Play1.2.7 完整打包,超级缩短完整打包所耗费的时间
- play1.2.7局部编译,局部打包完整解决方案
- 完整的.net程序打包
- Android完整项目打包
- InstallShield 软件打包完整教程
- 使用NSIS打包一个客户端的完整示例
- 用gulp做一个略完整的前端打包工作~
- Android Studio比较完整的打包apk流程
- 一个完整的Android项目打包成第三方库
- iOS完整的证书申请和打包过程
- 完整的cocos2d-x环境配置及命令行打包
- 一个资源打包工具完整代码
- web项目ant打包完整案例
- web 项目ant打包完整案例
- web项目ant打包完整案例
- 关于JAVA小程序完整打包过程
- Android 完整项目打包成 aar 详解
- 最新pyinstaller打包python3.6.3完整过程
- WEB前端之HTML5[6]~HTML5编辑API之Range对象
- 使用pngquant内核,便捷压缩整体项目png图片脚本
- XUtils
- 定义接口与回调用法
- 最大子数组问题的递归和非递归(线性时间)代码
- Play1.2.7 完整打包,超级缩短完整打包所耗费的时间
- 怎么把Android Studio的项目转成eclipse可用
- ubunut修改用户名
- js中点击事件可能产生的闭包
- windows10 系统设置
- 七牛云推流SDK使用
- Nginx源码剖析之内存池、内存管理
- 3Sum
- Java获取当前时间的年月日方法