日期:2014-05-17  浏览次数:20672 次

ant和yuicompressor 压缩css、js方案
ant和yuicompressor 压缩css、js方案

因为是个测试写的是个java工程,web工程一样修改个路径就行,主要是一次性搞定多个子目录下的js和css。附件还有个工具包(js压缩.rar),可以压缩多个文件,貌似都是一个目录下的文件,中间我加了些说明,目录我测了下只能用相对路径。(这个东东忘了从那里找的了,见谅)。
另外大概说明一下yuicompressor的使用方法

命令行用法
语法: java -jar yuicompressor-x.y.z.jar [options] [input file]
例子:java -jar yuicompressor-2.4.7.jar 3.js -o 3.js --nomunge --charset utf-8

通用参数:
-h, –help                 显示帮助信息
–type <js|css>            指定输入文件的文件类型
–charset <charset>        指定读取输入文件使用的编码
–line-break <column>      在指定的列后插入一个 line-bread 符号
-v, –verbose              显示info和warn级别的信息
-o <file>                  指定输出文件。默认输出是控制台。

JavaScript专用参数:
–nomunge                  只压缩, 不对局部变量进行混淆。
–preserve-semi            保留所有的分号。
–disable-optimizations    禁止优化。

<!--复制一个新工程再用此工具,因为会直接覆盖未压缩代码-->
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyTask" basedir="." default="compress-css">
	<property name="src.dir" value="./src" />
	<property name="yuicompressor" value="./src/resource/yuicompressor-2.4.7.jar" />

	<target name="compress-js">
		<apply executable="java" parallel="false" failonerror="true" dest="${src.dir}/" append="false" force="true">
			<!--单个文件压缩-->
			<fileset dir="${src.dir}/">
				<include name="1.js" />
				<include name="2.js" />
			</fileset>	
				
			<!--多个子目录压缩-->
			<fileset dir="${src.dir}/" includes="js1/*.js"/>
			<fileset dir="${src.dir}/" includes="js2/*.js"/>
				
			<!-- 以下写法错误,dir和dest(java命令执行的路径)相同
			<fileset dir="${src.dir}/js1/" includes="*.js"/>
			-->
			<arg line="-jar" />
			<arg path="${yuicompressor}" />
			<arg line="--charset gbk" />
			<srcfile />
			<arg line="-o" />
			<mapper type="glob" from="*.js" to="*.js" />
			<targetfile />
			<!--只压缩去掉空格,不混淆-->
		</apply>
	</target>
	<target name="compress-css">
		<apply executable="java" parallel="false" failonerror="true" dest="${src.dir}" append="false" force="true">
			<!--单个文件压缩-->
			<fileset dir="${src.dir}/">
				<include name="1.css" />
				<include name="2.css" />
			</fileset>	
				
			<!--多个子目录压缩-->
			<fileset dir="${src.dir}/" includes="css1/*.css"/>
			<fileset dir="${src.dir}/" includes="css2/*.css"/>

			<arg line="-jar" />
			<arg path="${yuicompressor}" />
			<arg line="--charset utf-8" />
			<srcfile />
			<arg line="-o" />
			<mapper type="glob" from="*.css" to="*.css" />
			<targetfile />
		</apply>
	</target>
</project>


参考 http://blog.csdn.net/jeamking/article/details/5166495