UDN-企业互联网技术人气社区

板块导航

浏览  : 1085
回复  : 0

[讨论交流] YUICompressor+ANT压缩Java Web工程前端js/css文件

[复制链接]
芭芭拉的头像 楼主
发表于 2016-11-29 15:28:43 | 显示全部楼层 |阅读模式
  最近team里有个jsp工程想要做一些性能上的优化, 需要对工程里的前端部分(主要是js和css)做一些压缩(这是一个老旧重的工程,重构的成本非常大,也没有人力,只能一步一步去优化)。想到与传统ANT工具结合的比较好的yuicompressor。

  yuicompressor下载

  下载地址: http://maven.aliyun.com/nexus/service/local/repositories/central/content/com/yahoo/platform/yui/yuicompressor/2.2.5/yuicompressor-2.2.5.jar?spm=0.0.0.0.jwwQsz&file=yuicompressor-2.2.5.jar

  这里推荐下阿里云的maven镜像,下载速度很快。maven repository在国内经常被墙。

  yuicompressor结合ant

  yuicompressor做的东西和gulp类似,可以对js/css文件做压缩混淆,但在使用的过程中还是觉得不是很灵活方便,比如说它构建的目标文件必须在构建前先创建好,这就要求我们在做构建之前先做一次copy操作。

  我要实现的目的很简单,在执行ant任务时,编译java工程之前对工程里的js/css文件做混淆压缩,最后打包成war包。所以我希望压缩后的文件能覆盖旧的文件,这样一来我不需要去修改html/jsp文件中对静态资源的引用。

  折腾一番后,对js或css文件的压缩的步骤大概总结为:

  创建一个编译目标目录,将源目录下的文件复制到目标目录

  将源目录中的文件压缩编译后保存到目标目录

  将目标目录移动覆盖源目录

  以下是ant中压缩js和css的任务:
  1. <!--定义常量-->
  2. <property name="yuicompressor.jar" location="${web.dir}/WEB-INF/lib/yuicompressor-2.2.5.jar"/>
  3. <property name="js.src" location="${web.dir}/js/test_yui"/>
  4. <property name="js.build" location="${web.dir}/js/test_yui_build"/>
  5. <property name="css.src" location="${web.dir}/style"/>
  6. <property name="css.build" location="${web.dir}/style_build"/>

  7. <!--压缩js-->
  8. <target name="js.compress">
  9.     <!-- START: 构建的目标文件必须存在,所以现复制 -->
  10.     <delete dir="${js.build}"/>
  11.     <mkdir dir="${js.build}" />
  12.     <copy todir="${js.build}" includeEmptyDirs="true" overwrite="true" preservelastmodified="true">
  13.         <fileset dir="${js.src}" >
  14.             <exclude name="**/*.*" />
  15.         </fileset>
  16.     </copy>
  17.     <!-- END: 构建的目标文件必须存在,所以现复制 -->

  18.     <!-- START: js压缩混淆 -->
  19.     <apply executable="java" parallel="false" verbose="true" dest="${js.build}" >
  20.         <fileset dir="${js.src}">
  21.             <include name="**/*.js" />
  22.             <exclude name="**/*.min.js" />
  23.         </fileset>
  24.         <arg line="-jar"/>
  25.         <arg path="${yuicompressor.jar}" />
  26.         <arg line="--type js --charset UTF-8 -o" />
  27.         <mapper type="glob" from="*.js" to="*.js" />
  28.         <targetfile />
  29.     </apply>
  30.     <!-- END: js压缩混淆 -->

  31.     <!-- START: 覆盖源目录 -->
  32.     <move todir="${js.src}">
  33.         <fileset dir="${js.build}"/>
  34.     </move>
  35.     <!-- END: 覆盖源目录 -->
  36. </target>
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部