工程结构:
1.build.xml
<?xml version="1.0" encoding="GBK"?> <!-- 本脚步可以使用方法说明 by Jay Chang (注意:请将该脚本放到工程根目录与WebRoot和src同一级别) 需要修改的地方有: 1.工程名 2.tomcat.path 3.project.jar.name(指定打成jar包的名字,默认可以与工程名一致) 4.根据具体的jdk版本进行修改,比如要用jdk6的那么改成1.6 启动脚本:点击鼠标右键-> run as -> ant build 执行完脚本则启动tomcat,如果已经启动那么是重启tomcat,并把工程打成war包, 放到tomcat的webapps目录下,由tomcat自动解压war包。 这样编译,打包,部署,重启可以一次性完成。 --> <!--==============================================================================--> <!--===========================ANT打包脚本==========================================--> <!--==============================================================================--> <project name="spring_ibatis_web" default="clean" basedir="."> <!--==========================================================================--> <!--==============================属性配置文件==================================--> <!--==========================================================================--> <property file="build.properties"/> <property file="${basedir}/version.properties"/> <!--==========================================================================--> <!--============================变量定义=======================================--> <!--==========================================================================--> <!-- 工程名 --> <property name="project.name" value="spring_ibatis_web" /> <!-- 创建目录 --> <property name="build.dir" value="${basedir}/build" /> <!-- 临时文件目录 --> <property name="build.temp.dir" value="${build.dir}/temp" /> <!-- 编译生产的class文件存放的临时目录 --> <property name="build.classes.dir" value="${build.dir}/temp/clasess" /> <!-- 源文件目录 --> <property name="src.dir" value="${basedir}/src" /> <!-- 项目的web根目录 --> <property name="web.dir" value="${basedir}/WebRoot" /> <!-- 项目的WEB-INF目录 --> <property name="webinf.dir" value="${web.dir}/WEB-INF" /> <!-- 项目的classes目录 --> <property name="classes.dir" value="${webinf.dir}/classes" /> <!-- 编译所需的java源文件存放的临时目录 --> <property name="src.temp.dir" value="${build.dir}/temp/src" /> <!-- dist目录 --> <property name="dist.dir" value="${basedir}/dist" /> <!-- 修改的文件存放目录 --> <property name="modify.dir" value="${dist.dir}/modify" /> <!-- 打成的jar包存放目录 --> <property name="lib.dir" value="${dist.dir}/lib" /> <!-- 编译所依赖的jar包 --> <property name="lib.path" value="${web.dir}/WEB-INF/lib" /> <!-- 项目打成的jar包名字--> <property name="project.jar.name" value="spring_ibatis_web" /> <!-- Tomcat安装路径 --> <!-- <property name="tomcat.home" value="D:/Tomcat5" /> --> <!-- 本机WebApps所在的路径 --> <property name="webapps.path" value="${tomcat.home}/webapps" /> <!-- Tomat j2ee jar包(主要包括jsp-api.jar,servlet-api.jar等)路径--> <property name="j2eelib.path" value="${tomcat.home}/common/lib" /> <!--==========================================================================--> <!--==============================设置 classpath===============================--> <!--==========================================================================--> <path id="compile.classpath"> <fileset dir="${lib.path}"> <include name="**/*.jar" /> </fileset> <fileset dir="${j2eelib.path}"> <include name="**/*.jar" /> </fileset> <pathelement path="${classes.path}" /> </path> <!--===========================================================================--> <!--================================初始化======================================--> <!--===========================================================================--> <target name="init"> <delete dir="${build.temp.dir}" verbose="true" /> <delete dir="${dist.dir}" verbose="true" /> <mkdir dir="${build.dir}" /> <mkdir dir="${build.classes.dir}" /> <mkdir dir="${dist.dir}" /> <mkdir dir="${lib.dir}" /> <copy todir="${src.temp.dir}" verbose="true"> <fileset dir="${src.dir}"> <include name="**/*.java" /> <include name="**/*.properties" /> <include name="**/*.xml" /> </fileset> </copy> </target> <!--===========================================================================--> <!--================================编译成class文件==============================--> <!--===========================================================================--> <target name="compile" depends="init"> <javac srcdir="${src.temp.dir}" destdir="${build.classes.dir}" target="1.5" debug="true" debuglevel="lines,source" deprecation="on"> <classpath refid="compile.classpath" /> </javac> <!-- 资源文件,配置文件 --> <!-- <copy todir="${build.classes.dir}" verbose="true"> <fileset dir="${src.temp.dir}/resource"> <include name="**/*.properties" /> <include name="**/*.xml" /> </fileset> </copy> --> </target> <!--===========================================================================--> <!--================================打成jar 包==================================--> <!--===========================================================================--> <target name="jar" description="打成jar包" depends="compile"> <jar jarfile="${lib.dir}/${project.jar.name}.jar"> <fileset dir="${build.classes.dir}"> <include name="**/**/*.class" /> <include name="**/**/*.properties" /> <include name="**/**/*.xml" /> </fileset> </jar> </target> <!--==========================================================================--> <!--==================将spring_ibatis_web.jar拷贝到WEB-INF/lib 下===============--> <!--==========================================================================--> <target name="copyjar" description="将spring_ibatis_web.jar拷贝到WEB-INF/lib下" depends="jar"> <copy todir="${lib.path}" file="${lib.dir}/${project.jar.name}.jar" /> </target> <!--==========================================================================--> <!--================================打成WAR 包=================================--> <!--==========================================================================--> <target name="war" description="Build the web application archive" depends="copyjar"> <war warfile="${dist.dir}/${project.name}.war" webxml="${webinf.dir}/web.xml"> <fileset dir="${web.dir}"> <exclude name="WEB-INF/classes/**"/> </fileset> </war> </target> <!--===========================================================================--> <!-- ============================将WAR包(或直接将WebRoot)部署到TOMCAT==============--> <!--===========================================================================--> <target name="deploy" depends="war"> <delete dir="${webapps.path}/${project.name}" verbose="true"></delete> <delete file="${webapps.path}/${project.name}.war" verbose="true"></delete> <copy todir="${webapps.path}" file="${dist.dir}/${project.name}.war"></copy> <!-- <delete dir="${webapps.path}/${project.name}" verbose="true"></delete> <mkdir dir="${webapps.path}/${project.name}"/> <copy todir="${webapps.path}/${project.name}"> <fileset dir="${web.dir}"> <include name="**"/> <exclude name="WEB-INF/classes/**"/> </fileset> </copy> --> </target> <!--==============================================================================--> <!--=====================将从上次打包好之后修改的文件拷贝出来============================--> <!--==============================================================================--> <target name="copyUpdateFile" depends="deploy" description="将从上次打包好之后修改的文件拷贝出来"> <echo>上次修改时间:${build.time}</echo> <copy todir="${modify.dir}/${project.name}" includeemptydirs="no" verbose="true"> <fileset dir="${basedir}" includes="**" > <exclude name="dist/**"/> <exclude name="build/**"/> <exclude name="**/*.class"/> <exclude name="*.bat"/> <exclude name="*.properties"/> <exclude name="*.xml"/> <exclude name="*.bak"/> <date datetime="${build.time}" pattern="yyyy-MM-dd HH:mm:ss" when="after"/> </fileset> </copy> </target> <!--==========================================================================--> <!--==========================将升级包上传到FTP==================================--> <!--==========================================================================--> <target name="ftp" if="${ftp.need}" depends="copyUpdateFile" description="将升级包上传到FTP" > <echo>FTP主机:${ftp.host}</echo> <echo>FTP端口:${ftp.port}</echo> <echo>FTP目录:${ftp.remotedir}</echo> <ftp action="mkdir" server="${ftp.host}" port="${ftp.port}" userid="${ftp.username}" password="${ftp.password}" remotedir="${ftp.remotedir}" depends="yes" binary="yes" verbose="true"> </ftp> <ftp action="del" server="${ftp.host}" port="${ftp.port}" userid="${ftp.username}" password="${ftp.password}" remotedir="${ftp.remotedir}" depends="yes" binary="yes" verbose="true"> <fileset dir="${ftp.remotedir}"> <include name="**"/> </fileset> </ftp> <ftp action="put" server="${ftp.host}" port="${ftp.port}" userid="${ftp.username}" password="${ftp.password}" remotedir="${ftp.remotedir}" depends="yes" binary="yes" verbose="true"> <fileset dir="${modify.dir}"> <include name="**"/> </fileset> </ftp> </target> <!--==========================================================================--> <!--==========================清理及后续操作(更新版本,及修改时间)===================--> <!--==========================================================================--> <target name="clean" depends="ftp" description="清理及后续操作(更新版本,及修改时间)"> <delete dir="${build.dir}"></delete> <propertyfile file="${basedir}/version.properties"> <entry default="001" key="build.number" operation="+" pattern="000" type="int" /> <entry default="now" key="build.time" pattern="yyyy-MM-dd HH:mm:ss" type="date" /> </propertyfile> </target> <!--==========================================================================--> <!--================================关闭Tomcat=================================--> <!--==========================================================================--> <!-- <target name="tomcat-stop" depends="clean" description="Tomcat Stopping..."> <java jar="${tomcat.home}/bin/bootstrap.jar" fork="true"> <jvmarg value="-Dcatalina.home=${tomcat.home}"/> <arg line="stop"/> </java> <waitfor maxwait="5" maxwaitunit="second"> <available file="errors.log"/> </waitfor> </target> --> <!--==========================================================================--> <!--================================启动Tomcat=================================--> <!--==========================================================================--> <!-- <target name="tomcat-start" depends="clean" description="Tomcat Starting..."> <exec executable="${tomcat.home}/bin/startup.bat" spawn="true" vmlauncher="false"> <env key="CATALINA_HOME" value="${tomcat.home}" /> <arg line="/c start ${tomcat.home}/bin/startup.bat" /> </exec> </target> --> <!--==========================================================================--> <!--================================关闭Tomcat=================================--> <!--==========================================================================--> <!-- <target name="tomcat-stop" depends="clean"> <java jar="${tomcat.home}/bin/bootstrap.jar" fork="true"> <jvmarg value="-Dcatalina.home=${tomcat.home}"/> <arg line="stop"/> </java> </target> --> <!--==========================================================================--> <!--================================启动Tomcat=================================--> <!--==========================================================================--> <!-- <target name="tomcat-start" depends="tomcat-stop"> <java jar="${tomcat.home}/bin/bootstrap.jar" fork="true"> <jvmarg value="-Dcatalina.home=${tomcat.home}"/> </java> </target> --> </project>
2.build.properties
#Tue Mar 29 13:32:14 CST 2011 tomcat.home=D\:/Tomcat5 ftp.need=false ftp.username=zjie ftp.password=zjie ftp.host=192.168.60.207 ftp.port=21 ftp.remotedir=FWQQ1212
3.version.properties
build.time=2011-03-30 09\:18\:02 build.number=035