跨平台的xml脚本引擎,用于自动化调用程序完成项目的编译,大包,测试,一般命名为build.cml,可以设置一些列target。
target一般包括:
* 任务1:usage 打印本脚本的帮助信息(缺省)
* 任务2:clean <-- init 清空初始化环境
* 任务3:javadoc <-- build <-- init 生成JAVADOC
* 任务4:jar <-- build <-- init 生成JAR
* 任务5:all <-- jar + javadoc <-- build <-- init 完成以上所有任务:jar javadoc
ant标签包括一下部分。
ant打包的步骤一般是:
1 建立一个临时路径,临时存放需要打包得文件,下面有两个文件夹,一个存放class文件,一个存放项目中的web文件
2 clean上一次打包得文件
3 编译class文件到临时路径下class目录中
4 将项目中web下的静态文件 js,css,html,image等copy到临时路径下的web目录中。
5 将项目中web下的配置文件copy到临时路径下的web目录中。
6 将临时路径下的文件和项目文件中的lib文件打成war包
7 将war包放到服务器下面。
<project name="项目名" default="默认的运行目标" basedir="" description="项目的描述"> <property file="build.properties" /> <property name="xxxxJarPath" value="${tempPath}/xxxx.jar" /> <property name="xxxxBuildPath" value="${tempPath}/xxxxBuildPath" /> <property name="xxxxClassPath" value="${xxxxBuildPath}/classes" /> <property name="xxxLibPath" value="${ProjectPath}/web/WEB-INF/lib" /> <property name="webPath" value="${ProjectPath}/web" /> <property name="webDest" value="${tempPath}/xxxx-web" /> <property name="webDestZip" value="${tempPath}/xxxx-web/xxx.zip" /> <target name="clean"> <delete dir="${xxxxBuildPath}" /> </target> <!--depends为依赖的target,执行target前会执行depends target --> <target name="build" depends="clean"> <!--创建class path--> <mkdir dir="${xxxxClassPath}" /> <!--编译class文件--> <javac destdir="${xxxxClassPath}" encoding="UTF-8"><!--class输出路径--> <src path="${xxxxSrcPath}" /><!--原文件路径--> <classpath refid="xxxLibPath" /><!--支持的lib文件的路径--> </javac> </target> <!--创建jar --> <target name="create_xxxx_jar" depends="build"> <jar destfile="${xxxxJarPath}" filesetmanifest="mergewithoutmain"> <manifest> <attribute name="Main-Class" value="Utils.xxxxUtils" /> <attribute name="Class-Path" value="." /> </manifest> <fileset dir="${xxxxClassPath}" /> <zipfileset excludes="META-INF/*.xx" src="${xxxLibPath}/poi-3[1].0.1-FINAL-.jar" /> </jar> </target> <!--该标签用来执行编译生成的.class文件 --> <target name="run_xxxx" depends="create_xxxx_jar"> <!--fork在一个新的虚拟机中运行该类 --> <java jar="${xxxxJarPath}" fork="true"> <arg line="${webPath} ${webDest} ${xxxxResourse}" /> <sysproperty key="file.encoding" value="utf-8" /> </java> </target> <!--copy静态文件,包括css,image,jsp/html --> <target name="copyStaticFile" depends="run_xxxx"> <copy todir="${webDest}/css"> <fileset dir="${webPath}/css" /> </copy> <copy todir="${webDest}/images"> <fileset dir="${webPath}/images" /> </copy> <copy todir="${webDest}/js"> <fileset dir="${webPath}/js" /> </copy> <copy todir="${webDest}"> <fileset dir="${webDest}/html" /> </copy> <delete dir="${webDest}/html" /> </target> <!--将静态文件打包--> <target name="staticFileZip" depends="copyStaticFile"> <zip destfile="${webDestZip}"> <fileset dir="${webDest}" /> </zip> </target> <target name="MapperXMLCopy" depends="staticFileZip"> <copy todir="${xxxxClassPath}"> <fileset dir="${ProjectPath}/src" excludes="*.java,*/*.java,*/*/*.java,*/*/*/*.java,*/*/*/*/*.java,*/*/*/*/*/*.java,*/*/*/*/*/*/*.java,*/*/*/*/*/*/*/*.java" /> </copy> </target> <!--copy 配置文件--> <target name="webCopy" depends="MapperXMLCopy"> <copy todir="${webDest}/META-INF"> <fileset dir="${ProjectPath}/web/META-INF"/> </copy> <copy todir="${webDest}/WEB-INF"> <fileset file="${ProjectPath}/web/WEB-INF/*.xml"/> </copy> </target> <!--打成war包--> <target name="war" depends="webCopy"> <war destfile="${tempPath}/xxxx.war" webxml="${MProjectPath}/web/WEB-INF/web.xml"> <fileset dir="${webDest}"/> <lib dir="${xxxLibPath}"/> <classes dir="${xxxxClassPath}" /> </war> </target> <!--将war包放到jboss或者tomcat目录下--> <target name="moveWar" depends="war"> <move todir="${xxxxWarDestPath}"> <fileset file="${tempPath}/xxxx.war"/> </move> </target> </project>