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



0 0
原创粉丝点击