ant脚本编写
使用ant脚本前的准备
1、下载一个ant安装包。如:apache-ant-1.8.4-bin.zip。解压到E盘。
2、配置环境变量。新增ANT_HOME:E:\apache-ant-1.8.4;PATH增加:E:\apache-ant-1.8.4\bin。
3、检查ant是否配置完成。运行->cmd输入:ant -version。查看是否打印ant的版本号。
打包的实质
生成jar包的实质
1、编译工程src文件夹下的Java文件,生成相应的class文件。
2、将所有的class文件集合成jar包。
生成war包的实质
1、编译工程src文件夹下的java文件,生成相应的class文件。
2、将工程WebContent下的除了class文件和jar包以外的文件,全部拷贝到war包的对应目录下。
3、将编译生成的class文件,全部拷贝到war包WEB-INF/classes文件夹下。
4、将工程lib中的jar包,全部拷贝到war包的WEB-INF/lib下。最后压缩成war包。
一个生成war包的ant脚本代码
<?xml version="1.0" encoding="UTF-8"?> <!-- 定义一个工程,默认任务为warFile。 --> <project name="Visit" default="warFile" basedir="."> <!-- 定义属性,打成war包的名称。 --> <property name="warFileName" value="VisitFiles.war"></property> <!-- 定义路径,编译java文件时用到的jar包。 --> <path id="project.lib"> <fileset dir="${basedir}/WebContent/WEB-INF/lib"> <include name="**/*.jar"/> </fileset> </path> <!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 --> <target name="clean"> <delete dir="${basedir}/build" /> <mkdir dir="${basedir}/build" /> </target> <!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 --> <target name="compile" depends="clean"> <javac srcdir="${basedir}/src" destdir="${basedir}/build" includeantruntime="false"> <classpath refid="project.lib"> </classpath> </javac> </target> <!-- 定义默认任务,将class文件集合成jar包。 --> <target name="warFile" depends="compile"> <!-- 删除原有war包。 --> <delete dir="${basedir}/${warFileName}" /> <!-- 建立新war包。 --> <war destfile="${basedir}/${warFileName}" webxml="${basedir}/WebContent/WEB-INF/web.xml"> <!-- 将非jar和非class文件拷贝到war包的对应路径下。 --> <fileset dir="${basedir}/WebContent"> <include name="**/**.*" /> <exclude name="**/*.jar"/> <exclude name="**/*.class"/> </fileset> <!-- 将jar和class文件拷贝到war包的对应路径下。 --> <lib dir="${basedir}/WebContent/WEB-INF/lib" /> <classes dir="${basedir}/build" /> </war> </target> </project>
另一个例子:
<?xml version="1.0" encoding="UTF-8"?> <project name="gsApi" basedir="." default="afterClean"> <description>gsApi</description> <tstamp prefix="start"> <format property="timestamp" pattern="yyyy_MM_dd" /> <format property="vsstimestamp" pattern="yyyy_MM_dd_hh_mm" /> </tstamp> <property name="projectName" value="gsApi"></property> <property name="src" value="../" /> <property name="debugging" value="on" /> <property name="classes" value="WEB-INF/classes"> </property> <property name="lib" value="WEB-INF/lib"></property> <property name="config" value="../resources" /> <property name="srcDir" value="./webapp"></property> <target name="init"> <tstamp> <format property="build.time" pattern="yyyy-MM-dd HH:mm:ss aa" /> </tstamp> <echo message="build time : ${build.time}" /> </target> <target name="clean" depends="init"> <delete dir="${classes}" /> </target> <target name="prepare" depends="clean"> <mkdir dir="${classes}" /> <copy todir="${classes}"> <fileset dir="${config}"> <include name="**/*.*" /> </fileset> </copy> </target> <target name="compile" depends="prepare"> <javac srcdir="${src}" destdir="${classes}" debug="true" includeantruntime="false" debuglevel="lines,vars,source" encoding="UTF-8" fork="true" memoryMaximumSize="512m"> <classpath> <fileset dir="${lib}"> <include name="**/*.jar" /> </fileset> </classpath> <compilerarg line="-XDignore.symbol.file"/> </javac> </target> <target name="mkwar" depends="compile"> <war destfile="../../../target/${projectName}.war" webxml="${basedir}/WEB-INF/web.xml"> <fileset dir="${basedir}/"> <include name="**/*.*" /> </fileset> </war> </target> <target name="afterClean" depends="mkwar"> </target> </project>
生活不止眼前的苟且,还有诗和远方。。。