使用ANT与YUI压缩js的实现方法

 更新时间:2013年05月17日 09:01:49   作者:  
本篇文章是对使用ANT与YUI压缩js的实现方法进行了详细的分析介绍,需要的朋友参考下
由于项目使用的js很多,为了提高系统效率,将js做压缩处理。
成功的对多个js进行压缩,必须经历下面两步。
1.合并多个js成为一个js.
2.将和并过后的js进行压缩处理。
使用的ant配置主要有:
复制代码 代码如下:

<property  name="root" value="WebRoot"></property>
 <property  name="js" value="${root}/js"></property>
 <property  name="map_function_js" value="${js}/mapfunc"></property>
 <property name="lib" value="lib"/>
 <property  name="build" value="build"></property>
 <property  name="war" value="war"></property>
 <property  name="war.info" value="${war}/WEB-INF"></property>
 <property  name="war.lib" value="${war.info}/lib"></property>
 <property  name="war.classes" value="${war.info}/classes"></property>
 <property  name="project.name" value="zjmap"></property>
 <property name="charset" value="utf-8"/>
 <property name="src" value="src"/>
 <target name="创建build目录">
   <mkdir dir="${build}"/>
  </target>

复制代码 代码如下:

 <!-- 将多个js合并成为一个js -->
  <target name="合并js" depends="创建build目录">
          <concat destfile="${build}/mapfuncall.js" encoding="${charset}" outputencoding="${charset}">
           <path path="${map_function_js}/DC.js" />
        <path path="${map_function_js}/stringUtil.js" />
           <path path="${map_function_js}/LOCALDC.js" />
           <path path="${map_function_js}/screen.js" />
           <path path="${map_function_js}/wfsQuery.js" />
           <path path="${map_function_js}/Map.js" />
           <path path="${map_function_js}/Query.js" />
           <path path="${map_function_js}/ClassificationQuery.js" />
           <path path="${map_function_js}/BusQuery.js" />
           <path path="${map_function_js}/RouteQuery.js" />
           <path path="${map_function_js}/cursorPosition.js" />
           <path path="${map_function_js}/bufferAnalysis.js" />
           <path path="${map_function_js}/divCtrl.js" />
            <path path="${map_function_js}/mark.js" />
           <path path="${map_function_js}/overlayAnalysis.js" />
           <path path="${map_function_js}/BuildQuery.js" />
           <path path="${map_function_js}/PopShow.js" />
           <path path="${map_function_js}/correct.js" />
           <path path="${map_function_js}/style_result.js" />
            <path path="${map_function_js}/style_ui.js" />
           <path path="${map_function_js}/Catalog.js" />
           <path path="${map_function_js}/scenario.js" />
           <path path="${map_function_js}/wfs.js" />
           <path path="${map_function_js}/Uuid.js" />
           <path path="${map_function_js}/Gps.js" />
           <path path="${map_function_js}/typhoon.js" />
           <path path="${map_function_js}/Monitor.js" />
           <path path="${map_function_js}/RainWater.js" />
           <path path="${map_function_js}/Approval.js" />
           <path path="${map_function_js}/statistics.js" />
           <path path="${map_function_js}/statisticsNew.js" />
           <path path="${map_function_js}/OTileCacheCustom.js" />
           <path path="${map_function_js}/BQTool.js" />
           <path path="${map_function_js}/CityPositionQuery.js" />
           <path path="${map_function_js}/IFieldService.js" />
           <path path="${map_function_js}/SpecialQuery.js" />
          </concat>
          <replaceregexp match="@DEBUG@" replace="" flags="g" byline="true" file="${build}/mapfuncall.js" encoding="${charset}" />
  </target>
 <!-- 使用雅虎UI进行js压缩 -->
 <target name="开始压缩" depends="合并js">
          <!-- 使用雅虎UI压缩 mapfuncall.js -->
         <antcall target="压缩mapfuncall.js"></antcall>
           <!-- 使用雅虎UI压缩 dataedit.js -->
         <antcall target="压缩dataedit.js"></antcall>
          <!-- 使用雅虎UI压缩 ISuggest.js -->
         <antcall target="压缩ISuggest.js"></antcall>
         <!-- 复制压缩后的js文件 -->
         <antcall target="复制压缩js文件"></antcall>
 </target>
 <target name="压缩mapfuncall.js">
   <java jar="${lib}/yui/yuicompressor-2.4.6.jar" fork="true">
                <arg line="--type js --charset utf-8 ${map_function_js}/mapfuncall.js -o ${build}/mapfuncall-min.js"/>          
   </java>
 </target>
 <target name="压缩dataedit.js">
  <java jar="${lib}/yui/yuicompressor-2.4.6.jar" fork="true">
            <arg line="--type js --charset utf-8 ${map_function_js}/dataedit.js -o ${build}/dataedit-min.js"/>          
  </java>
 </target>
 <target name="压缩ISuggest.js">
   <java jar="${lib}/yui/yuicompressor-2.4.6.jar" fork="true">
       <arg line="--type js --charset utf-8 ${map_function_js}/ISuggest.js -o ${build}/ISuggest-min.js"/>          
   </java>
 </target>
     <target name="清除build目录" depends="开始压缩">
          <delete dir="${build}"/>
  </target>
 <target name="复制压缩js文件">
      <copy todir="${map_function_js}">
         <fileset dir="${build}">
                   <include name="**.js"/>
            </fileset>
      </copy>
 </target>

相关文章

  • 浅谈Java中的private方法是否可以被代理

    浅谈Java中的private方法是否可以被代理

    这篇文章主要介绍了浅谈Java中的private方法是否可以被代理,在 Java 8之前,接口可以有常量变量和抽象方法,我们不能在接口中提供方法实现,如果我们要提供抽象方法和非抽象方法(方法与实现)的组合,那么我们就得使用抽象类,需要的朋友可以参考下
    2023-12-12
  • Spring AI聊天功能开发步骤

    Spring AI聊天功能开发步骤

    本文给大家介绍Spring AI聊天功能开发步骤,首先引入依赖,继承父版本的springboot依赖,最好是比较新的依赖,结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • spring声明式事务@Transactional开发常犯的几个错误及最新解决方案

    spring声明式事务@Transactional开发常犯的几个错误及最新解决方案

    使用声明式事务@Transactional进行事务一致性的管理,在开发过程中,发现很多开发同学都用错了spring声明式事务@Transactional或使用不规范,导致出现各种事务问题,这篇文章主要介绍了spring声明式事务@Transactional开发常犯的几个错误及解决办法,需要的朋友可以参考下
    2024-02-02
  • Java与Scala创建List与Map的实现方式

    Java与Scala创建List与Map的实现方式

    这篇文章主要介绍了Java与Scala创建List与Map的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java 解决异常 2 字节的 UTF-8 序列的字节2 无效的问题

    java 解决异常 2 字节的 UTF-8 序列的字节2 无效的问题

    这篇文章主要介绍了java 解决异常 2 字节的 UTF-8 序列的字节 2 无效的问题的相关资料,需要的朋友可以参考下
    2016-12-12
  • springmvc实现跨服务器文件上传功能

    springmvc实现跨服务器文件上传功能

    这篇文章主要为大家详细介绍了springmvc实现跨服务器文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 如何在Spring Boot中使用MQTT

    如何在Spring Boot中使用MQTT

    这篇文章主要介绍了如何在Spring Boot中使用MQTT,帮助大家更好的理解和学习使用Spring Boot,感兴趣的朋友可以了解下
    2021-04-04
  • Springboot使用Redis中ZSetOperations实现博客访问量

    Springboot使用Redis中ZSetOperations实现博客访问量

    在日常的网站使用中,经常会碰到页面的访问量,本文主要介绍了Springboot使用Redis中ZSetOperations实现博客访问量,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • JAVA基本类型包装类 BigDecimal BigInteger 的使用

    JAVA基本类型包装类 BigDecimal BigInteger 的使用

    Java 中预定义了八种基本数据类型,包括:byte,int,long,double,float,boolean,char,short,接下来文章小编将向大家介绍其中几个类型的内容,需要的朋友可以参考下文章
    2021-09-09
  • spring boot项目导入依赖后代码报错问题的解决方法

    spring boot项目导入依赖后代码报错问题的解决方法

    这篇文章主要给大家介绍了关于spring boot项目导入依赖后代码报错问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08

最新评论