YUI JS压缩Ant脚本
<?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脚本的更多相关文章
- 使用雅虎YUI Compressor压缩JS过程心得记录
对待发布的项目进行测试时,发现js下载量比较大,从jquery的min版想到了压缩项目中的js文件.很简单的google之(在此,强调一下google的重要性),搜到一个叫做YUI Compresso ...
- js压缩 uglify(2)
一.故事总有其背景 年末将至,很多闲适的时间,于是刷刷微博,接触各种纷杂的信息——美其名曰“学习”.运气不错,遇到了一个新名词,uglifyjs. 据说是用来压缩JS文件的,据说还能优化JS,据说是基 ...
- 【DWR系列06】- DWR日志及js压缩
img { border: solid 1px } 一.日志 DWR依赖 Apache Commons Logging,可以使用log4j实现日志记录功能. 1.1 日志简介 和其他日志框架一样,当设 ...
- 利用Ant脚本生成war包的详细步骤
使用ant脚本前的准备 1.下载一个ant安装包.如:apache-ant-1.8.4-bin.zip.解压到E盘. 2.配置环境变量.新增ANT_HOME:E:\apache-ant-1.8.4:P ...
- ant脚本编写
使用ant脚本前的准备 1.下载一个ant安装包.如:apache-ant-1.8.4-bin.zip.解压到E盘. 2.配置环境变量.新增ANT_HOME:E:\apache-ant-1.8.4:P ...
- 转: Ant 脚本的结构化设计
引言 Ant 脚本是由 Apache 提供的一种基于 Java 的构建工具,为 Java 开发人员所熟悉.Java 开发人员使用 Ant 脚本可以很方便地完成 Java 开发过程中常见的如拷贝文件.创 ...
- Ant脚本简介与基础知识
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6624003.html 一:Ant是什么 Ant相当于Linux环境下的shell脚本,只不过是用xml文档来 ...
- Asp.Net Mvc ScriptBundle 脚本文件捆绑压缩 导致 脚本出错的问题
由于捆绑压缩会对所有包含的文件进行压缩,无法设置忽略对某个js文件的压缩.导致压缩该js后,脚本出错的问题. 解决方式: 重写 ScriptBundle 的 GenerateBundleRespons ...
- YUI Compressor 压缩 JavaScript 原理-《转载》
YUI Compressor 压缩 JavaScript 的内容包括: 移除注释 移除额外的空格 细微优化 标识符替换(Identifier Replacement) YUI Compressor包括 ...
随机推荐
- CentOS配置iptables规则并使其永久生效
1. 目的 最近为了使用nginx,配置远程连接的使用需要使用iptable是设置允许外部访问80端口,但是设置完成后重启总是失效.因此百度了一下如何设置永久生效,并记录. 2. 设置 2.1 添加 ...
- [Java学习] Java虚拟机(JVM)以及跨平台原理
相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的. 那么,跨平台是怎样实现的呢?这就 ...
- English trip -- VC(情景课)2 A At school
xu言: Sometimes, I feel very confused. However, there will always be a weak light in a corner to ligh ...
- 12月10日 render( locals:{...}) 传入本地变量。
Jdstor第一部分后台设计,4-4上传图片. 3.4 Using Partials--3.4.4 Passing Local Variables You can also pass local va ...
- ubuntu计划任务
1.第一次编写计划任务,你输入crontab -l 会报错:no crontab for root 这个解决方法:输入crontab -e 2,第一次编写计划任务的时候你要输入select -edit ...
- 贴心的vs 备注提醒功能
- sublime 个人心得
sublime 3快捷键: (1) Ctrl+O(Command+O)可以实现头文件和源文件之间的快速切换 (2) 双击可选中光标所在单词,三击可选中光标所在行(等同于Ctrl+L(Command+L ...
- js设计模式-观察者模式
定义: 观察者模式又叫发布订阅模式,它定义了对象间的一种一对多的依赖关系.观察者模式让两个对象松耦合地联系在一起,虽然不太清楚彼此的细节,但这不影响他们之间的互相通信. 思路 定义一个对象,在对象中实 ...
- HDU 2492 树状数组
DES:按照位置编号给你选手的rank值.每场比赛要有一个裁判,位置和rank在两个选手之间.两场比赛裁判不同 或有一个选手不同则可以说 两场比赛不同.问你一共可以有多少场比赛. 思路是遍历每个人当裁 ...
- (C#基础)各种加密学习
之前,一直想对这个做一个了解,但是总是坚持不下去,很急躁.最近看了几遍文章,很有感触,于是又来重新开始学习,从最最基础的开始——正所谓“慢就是快”.心态变了,继续吧!上代码! using System ...