<?xml version="1.0" encoding="UTF-8"?>
<!-- 对指定目录下的所有js进行压缩,放入指定位置 -->
<project name="js-css-build" default="makewar" basedir=".">
<property name="web.dir" location="WebRoot" />
<property name="web.dir.lib" location="${web.dir}/WEB-INF/lib" />
<property name="yuicompressor.jar" location="${web.dir}/WEB-INF/lib/yuicompressor-2.4.2.jar" />
<!-- 要压缩的源文件所在目录 -->
<property name="source.dir.js" location="${web.dir}/js" />
<property name="source.dir.css" location="${web.dir}/css" />
<!-- 压缩过程中的临时目录 -->
<property name="tmp.dir.js" location="${basedir}/tmp/js" />
<property name="tmp.dir.css" location="${basedir}/tmp/css" />
<!-- 生成jar和war的命名 -->
<property name="target.project.jar" value="autocreate.jar" />
<property name="target.project.war" value="autocreate.war" />
<!--生成*.war并放到build目录下-->
<target name="makewar" description="create a war for the project" depends="makejar,compress">
<!-- <ant antfile="${basedir}/compress-js-css.xml" /> -->
<war destfile="${target.project.war}">
<!-- 包含${web.dir}目录下的内容 -->
<fileset dir="${web.dir}" includes="**">
<!-- 不包含${web.dir}的以下目录 -->
<exclude name="WEB-INF/classes/**" />
<exclude name="js/**" />
<exclude name="css/**" />
</fileset>
<!-- 包含临时目录下压缩后的js和css文件 -->
<fileset dir="${basedir}/tmp" />
</war>
<!-- 删除临时目录 -->
<delete dir="${basedir}/tmp" />
</target>
<!-- 生成jar文件 -->
<target name="makejar" description="create a jar for the project">
<jar jarfile="${web.dir.lib}/${target.project.jar}" includes="**" basedir="${web.dir}/WEB-INF/classes" />
</target>
<!-- YUI Compress 压缩合并操作-->
<target name="compress" depends="createTemp">
<!-- 循环压缩文件 -->
<echo message="循环压缩${source.dir.js}所有js文件">[开始]</echo>
<apply executable="java" parallel="false" failοnerrοr="true">
<fileset dir="${source.dir.js}" 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="${tmp.dir.js}/*.js" />
</apply>
<echo message="循环压缩${source.dir.js}所有js文件">[结束]</echo>
<echo message="循环压缩${source.dir.css}所有css文件">[开始]</echo>
<apply executable="java" parallel="false" failοnerrοr="true">
<fileset dir="${source.dir.css}" includes="*.css" />
<!-- 源文件及所在目录, 指定下面要循环文件 -->
<arg line="-jar" />
<arg path="${yuicompressor.jar}" />
<arg line="--charset utf-8" />
<srcfile />
<arg line="-o" />
<targetfile />
<mapper type="glob" from="*.css" to="${tmp.dir.css}/*.css" />
</apply>
<echo message="循环压缩${source.dir.css}所有css文件">[结束]</echo>
</target>
<!-- 创建临时目录 -->
<target name="createTemp" description="create temp dir">
<mkdir dir="${tmp.dir.js}" />
<mkdir dir="${tmp.dir.css}" />
<echo>创建临时目录${tmp.dir.js},${tmp.dir.css}</echo>
</target>
</project>