yuicompressor压缩js的ant脚本

yuicompressor压缩js的ant脚本<?xmlversion="1.0"encoding="UTF-8"?> <!–对指定目录下的所有js进行压缩,放入指定位置–> <projectname="jsbuild"default="build">    <propertyname="web.dir"location=&quo

大家好,又见面了,我是你们的朋友全栈君。

<?xml version=”1.0″ encoding=”UTF-8″?> 
<!– 对指定目录下的所有js进行压缩,放入指定位置 –> 
<project name=”jsbuild” default=”build”> 
    <property name=”web.dir” location=”WebRoot” /> 
    <property name=”yuicompressor.jar” location=”${web.dir}/WEB-INF/lib/yuicompressor-2.4.2.jar” /> 
 
    <!– 得到当前日期 –> 
    <tstamp> 
        <format property=”now.date” pattern=”yyyy-MM-dd” locale=”zh” /> 
    </tstamp> 
      
    <!– 要压缩的js源文件所在文件夹,这个文件里的所有js将被压缩 –> 
    <property name=”source.dir” location=”${web.dir}/js”/> 
          
    <!– 目标目录,压缩后的js文件放在哪个目录下 –> 
    <property name=”dest.dir” location=”${web.dir}/js/compress”/> 
      
    <!– 压缩过程中的临时目录 –> 
    <property name=”temp” location=”${web.dir}/tmp/${now.date}”/> 
      
    <!– 压缩完成后, copy要压缩文件至目标目录 –> 
    <target name=”build” depends=”js.compress”> 
     <!–
     <echo message=”压缩完成后, 拷贝${temp}/*.js至${source.dir}目录,并删除tmp目录”>[开始]</echo>
     <copy todir=”${source.dir}” overwrite=”true”>
      <fileset dir=”${temp}” includes=”*.js” />
     </copy>
     <delete dir=”${web.dir}/tmp”/>
     <echo message=”压缩完成后, 拷贝${temp}/*.js至${source.dir}目录,并删除tmp目录”>[结束]</echo>
     –>
        <!– <copy file=”${temp}/compress-all-pack.js” tofile=”${dest.dir}/compress-all-pack.js” overwrite=”true” failοnerrοr=”false”/> 
        <echo message=”压缩完成后, 拷贝${temp}/compress-all-pack.js至目标目录”></echo> –> 
    </target> 
      
    <!– YUI Compress 压缩合并操作–>   
      <target name=”js.compress” depends=”createTemp”>     
          <!– 循环压缩文件 –>    
          <echo message=”循环压缩${temp}所有js文件”>[开始]</echo>    
          <apply executable=”java” parallel=”false” failοnerrοr=”true”>      
              <fileset dir=”${source.dir}” includes=”*.js” /> <!– 源文件及所在目录, 指定下面要循环文件 –>    
              <arg line=”-jar” />       
              <arg path=”${yuicompressor.jar}” />       
              <arg line=”–charset utf-8″ />     
              <srcfile />    
              <arg line=”-o” />    
              <targetfile />       
              <mapper type=”glob” from=”*.js” to=”${temp}/*.js” />    
          </apply>     
          <echo message=”循环压缩${temp}所有js文件”>[结束]</echo>    
              
          <!– 连接文件至目标目录 fixlastline=”true” 每个文件占一行 –>    
          <echo message=”将${temp}目录下所有js压缩成一个文件至${temp}/compress-all-pack.js”>[开始]</echo>    
          <concat destfile=”${dest.dir}/compress-all-pack.js” fixlastline=”true” encoding=”UTF-8″>    
              <fileset dir=”${temp}”>    
                  <include name=”**.js” />    
                  <exclude name=”*.css”/> <!– 排除 –>    
              </fileset>    
          </concat>    
          <echo message=”将${temp}目录下所有js压缩成一个文件至${dest.dir}/compress-all-pack.js”>[结束]</echo>    
      </target>       
          
      <!– 创建临时目录 –>    
      <target name=”createTemp” description=”创建临时目录”>    
         <delete dir=”${temp}”/>  
          <mkdir dir=”${temp}”/>    
          <echo>创建临时目录${temp}</echo>    
      </target>    
  </project> 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161240.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Android蓝牙开发—经典蓝牙详细开发流程[通俗易懂]

    Android蓝牙开发—经典蓝牙详细开发流程[通俗易懂]    Android蓝牙开发前,首先要区分是经典蓝牙开发还是BLE(低功耗)蓝牙开发,它们的开发是有区别的,如果还分不清经典蓝牙和BLE(低功耗)蓝牙的小伙伴,可以先看Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别本文是针对经典蓝牙开发的,如果是BLE(低功耗)蓝牙开发,可以看Android蓝牙开发—BLE(低功耗)蓝牙详细开发流程开发流程开启蓝牙 扫描蓝牙 …

  • 华为Mate40/华为Mate40Pro忘记密码怎么解锁激活手机设备已锁定恢复出厂无法解锁账户ID屏幕锁解除刷机方法教程[通俗易懂]

    华为Mate40/华为Mate40Pro忘记密码怎么解锁激活手机设备已锁定恢复出厂无法解锁账户ID屏幕锁解除刷机方法教程[通俗易懂]今天带来一台用户华为Mate40Pro手机强制清除华为账号锁案例分享,这个台手机是用户公司手机,由于前使用者离职后未能退出手机的华为账号和锁屏密码,导致手机无法使用。自己通过简单的恢复出厂设置后,发现手机有华为账号锁无法激活手机,这才联系到刷机爱好者技术人员,给予远程强制刷机移除华为Mate40Pro的账号锁。在此提醒广大用户,登录的华为账号建议绑定经常使用的手机号码,防止无法找回密码从而到时手机无法使用。在刷机解锁过程中需要准备以下工具:链接:百度网盘请输入提取码提取码:8888–来

  • Vue中 $attrs、$listeners 详解及使用

    Vue中 $attrs、$listeners 详解及使用1.前言多级组件嵌套需要传递数据时,通常使用的方法是通过vuex。如果仅仅是传递数据,而不做中间处理,使用vuex处理,未免有点杀鸡用牛刀。Vue2.4版本提供了另一种方法,使用v-bind=”$attrs”,将父组件中不被认为props特性绑定的属性传入子组件中,通常配合interitAttrs选项一起使用。之所以要提到这两个属性,是因为两者的出现使得组件之间跨组件的通信在不依赖vuex和事件总线的情况下变得简洁,业务清晰。首先分析以下应用场景A组件与B组件

    2022年10月18日
  • cocos 3.0 一键打包android平台应该注意的细节

    cocos 3.0 一键打包android平台应该注意的细节

    2021年11月17日
  • FFmpeg源码分析:av_parser_parse2()解析数据包

    FFmpeg源码分析:av_parser_parse2()解析数据包​在FFmpeg的libavcodec模块提供解析数据包和编解码功能。其中,av_parser_parse2()函数用来解析数据包,在使用av_read_frame()读取音视频帧时,会调用到该函数进行数据包解析。关于读取音视频帧的源码分析请查看:av_read_frame()文章。​

  • 备忘录模式实例_iphone语音备忘录无法分享

    备忘录模式实例_iphone语音备忘录无法分享备忘录模式 Motivation动机模式定义实例结构要点总结笔记动机在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯对象之前处于某个点时的状态.如果使用一些共有接口来让其他对象得到对象的状态,便会暴露对象的实现细节.如何实现对象状态的良好保存与回复?但同时又不会因此而破坏对象的封装性模式定义在不破坏封装性的前提下.捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可以将该对象恢复到原先保存的状态实例朴素class Memento{ stri

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号