<?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}/other"/>

<!-- 目标目录,压缩后的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">
<!-- <copy file="${temp}/compress-all-pack.js" tofile="${dest.dir}/compress-all-pack.js" overwrite="true" failonerror="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" failonerror="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}/*-m.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="**-m.js" />
<exclude name="*.css"/> <!-- 排除 -->
</fileset>
</concat>
<echo message="连接文件${temp}所有js文件至${dest.dir}/compress-all-pack.js">[结束]</echo>
</target>

<!-- 创建临时目录 -->
<target name="createTemp" description="创建临时目录">
<mkdir dir="${temp}"/>
<echo>创建临时目录${temp}</echo>
</target>
</project>

YUI JS压缩Ant脚本的更多相关文章

  1. 使用雅虎YUI Compressor压缩JS过程心得记录

    对待发布的项目进行测试时,发现js下载量比较大,从jquery的min版想到了压缩项目中的js文件.很简单的google之(在此,强调一下google的重要性),搜到一个叫做YUI Compresso ...

  2. js压缩 uglify(2)

    一.故事总有其背景 年末将至,很多闲适的时间,于是刷刷微博,接触各种纷杂的信息——美其名曰“学习”.运气不错,遇到了一个新名词,uglifyjs. 据说是用来压缩JS文件的,据说还能优化JS,据说是基 ...

  3. 【DWR系列06】- DWR日志及js压缩

    img { border: solid 1px } 一.日志 DWR依赖 Apache Commons Logging,可以使用log4j实现日志记录功能. 1.1 日志简介 和其他日志框架一样,当设 ...

  4. 利用Ant脚本生成war包的详细步骤

    使用ant脚本前的准备 1.下载一个ant安装包.如:apache-ant-1.8.4-bin.zip.解压到E盘. 2.配置环境变量.新增ANT_HOME:E:\apache-ant-1.8.4:P ...

  5. ant脚本编写

    使用ant脚本前的准备 1.下载一个ant安装包.如:apache-ant-1.8.4-bin.zip.解压到E盘. 2.配置环境变量.新增ANT_HOME:E:\apache-ant-1.8.4:P ...

  6. 转: Ant 脚本的结构化设计

    引言 Ant 脚本是由 Apache 提供的一种基于 Java 的构建工具,为 Java 开发人员所熟悉.Java 开发人员使用 Ant 脚本可以很方便地完成 Java 开发过程中常见的如拷贝文件.创 ...

  7. Ant脚本简介与基础知识

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6624003.html  一:Ant是什么 Ant相当于Linux环境下的shell脚本,只不过是用xml文档来 ...

  8. Asp.Net Mvc ScriptBundle 脚本文件捆绑压缩 导致 脚本出错的问题

    由于捆绑压缩会对所有包含的文件进行压缩,无法设置忽略对某个js文件的压缩.导致压缩该js后,脚本出错的问题. 解决方式: 重写 ScriptBundle 的 GenerateBundleRespons ...

  9. YUI Compressor 压缩 JavaScript 原理-《转载》

    YUI Compressor 压缩 JavaScript 的内容包括: 移除注释 移除额外的空格 细微优化 标识符替换(Identifier Replacement) YUI Compressor包括 ...

随机推荐

  1. alias和alias_method的区别:

    1.alias 是 Ruby 的一个关键字,因此使用的时候是 alias :new name :oldname,而 alias_method 是 module 类的一个方法,因此使用的时候是 alia ...

  2. codeforces 536a//Tavas and Karafs// Codeforces Round #299(Div. 1)

    题意:一个等差数列,首项为a,公差为b,无限长.操作cz是区间里选择最多m个不同的非0元素减1,最多操作t次,现给出区间左端ll,在t次操作能使区间全为0的情况下,问右端最大为多少. 这么一个简单题吞 ...

  3. codeforces 1042c// Array Product// Codeforces Round #510(Div. 2)

    题意:给出一个数组,2种操作:.1:x*y然后x消失,2:除掉x(2操作最多只能进行一次).问最大的结果的一种操作方式.逻辑题,看能不能想全面. 1先数好0,正,负的数量,zero,pos,neg.如 ...

  4. Razor及HtmlHelper学习笔记

    Razor 不是编程语言.它是服务器端标记语言. 什么是Razor? Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法. 当网页被写入浏览器时,基于 ...

  5. 微信小程序之更新上一页数据(十二)

    小程序开发过程中经常有这种需求,需要把当前页面数据传递给上一个页面,但是wx.navigateBack()无法传递数据. 一般的办法是把当前页面数据放入本地缓存,上一个页面再从缓存中取出. 除此之外还 ...

  6. hdu-5492-dp

    Find a path Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  7. http 请求和格式

    get 请求:从指定的资源请求数据. post请求:向指定的资源提交要被处理的数据. head请求:与 GET 相同,但只返回 HTTP 报头,不返回资源实体. option请求:返回服务器支持的 H ...

  8. 使用API失效供应商地址Demo(转)

    原文地址  使用API失效供应商地址Demo DECLARE lv_return_status ) := NULL; ln_msg_count NUMBER; lv_errmsg ); lt_vend ...

  9. mysql禁止远程访问的解决办法

      1. 改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 &qu ...

  10. learning docker steps(2) ----- docker contailner 初次体验

    参考:https://docs.docker-cn.com/get-started/part2/ Dockerfile的内容如下所示: # 将官方 Python 运行时用作父镜像 FROM pytho ...