因为是个测试写的是个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>
<!--复制一个新工程再用此工具,因为会直接覆盖未压缩代码--> <?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