在内网开发的两个工程使用ant 发布。
<?xml version="1.0" encoding="utf-8"?> <project name="bra" default="dev_deploy" basedir="."> <!-- ========== project dir 可以修改参数========== --> <property name="workspaces.dir" value="E:/cdel_answer_workspace"/> <property name="project" value="${workspaces.dir}/bra"/> <property name="lib.path" value="${project}/WebContent/WEB-INF/lib"/> <property name="web.root" value="${project}/WebContent"/> <property name="serverName" value="bra"/> <!--========== project information 已下参数不要修改========== --> <property name="build.dir" value="${project}/.webroot/${serverName}"/> <property name="zip.dir" value="${project}/.webroot"/> <property name="user" value="user"/> <property name="passwd" value="passwd"/> <property name="host" value="192.168.190.208"/> <property name="tomcatDir" value="/usr/local/meeting/jboss-meeting-web-8110"/> <property name="baseDir" value="${tomcatDir}/webapps"/> <property name="tomcat" value="${user}:${passwd}@${host}:${baseDir}"/> <property name="bakPath" value="/home/Gzh/bak/web"/> <property name="JAVA_HOME" value="/usr/java/jdk1.6.0_12"/> <target name="dev_deploy" depends="dev_LocalZipToServer,dev_BakZip"/> <target name="dev_LocalZipToServer" depends="gen_compile,gen_copyWebRoot,gen_makezip,gen_clearZip,gen_uploadZip,gen_clean"/> <target name="dev_BakZip" depends="gen_shutDownWebServer,gen_makeServerZip,gen_mvServerTar,gen_delZipAndUnzip,gen_delServerWorks,gen_startWebServer"/> <target name="dev_rollBackProject" depends="gen_shutDownWebServer,gen_rollBackProject,gen_delServerWorks,gen_startWebServer"/> <!-- compile classes to bin --> <target name="gen_compile" > <echo message="compile classes 开始"/> <mkdir dir="${build.dir}/WEB-INF/classes"/> <javac srcdir="${project}/src" destdir="${build.dir}/WEB-INF/classes" includes="**/*.java" encoding="UTF-8"> <classpath> <fileset dir="${lib.path}"> <include name="**/*.jar"/> </fileset> </classpath> </javac> <copy todir="${build.dir}/WEB-INF/classes" overwrite="true"> <fileset dir="${project}/src"> <include name="**/*.xml"/> </fileset> </copy> <echo message="compile classes 结束"/> </target> <!-- copy webRoot jsp css js--> <target name="gen_copyWebRoot" > <echo message="copy webRoot jsp css js 开始"/> <mkdir dir="${build.dir}/WEB-INF/classes"/> <copy todir="${build.dir}" overwrite="true"> <fileset dir="${web.root}"></fileset> </copy> <echo message="copy webRoot jsp css js 结束"/> </target> <!--webRoot makezip --> <target name="gen_makezip"> <echo message="webRoot makezip 开始"/> <zip zipfile="${zip.dir}/${serverName}.zip" basedir="${zip.dir}" /> <echo message="webRoot makezip 结束"/> </target> <!--upload zip to server--> <target name="gen_uploadZip"> <echo message="zip文件上传服务器开始"/> <scp todir="${tomcat}" trust="true"> <fileset file="${zip.dir}/${serverName}.zip"/> </scp> <echo message="zip文件上传服务器结束"/> </target> <!--删除服务器 zip 包--> <target name="gen_clearZip"> <echo message="删除服务器 zip 包开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="cd ${baseDir}; rm -rf ${serverName}.zip;"/> <echo message="删除服务器 zip 包结束"/> </target> <!--打包服务器程序--> <target name="gen_makeServerZip"> <echo message="打包server Zip 开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="cd ${baseDir};tar cvfz `date -d today +%Y%m%d%H%M_%S`_${serverName}.tar.gz ${serverName};"/> <echo message="打包server Zip 结束"/> </target> <!--移动服务器打包程序--> <target name="gen_mvServerTar"> <echo message="移动 server tar 开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="cd ${baseDir}; mv `find . -name '*.tar.gz'` ${bakPath}"/> <echo message="移动 server tar 结束"/> </target> <!--服务器程序解压--> <target name="gen_delZipAndUnzip"> <echo message="解压 server tar 开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="cd ${baseDir}; rm -rf ${serverName}; unzip ${serverName}.zip "/> <echo message="解压 server tar 结束"/> </target> <!--关闭tomcat--> <target name="gen_shutDownWebServer"> <echo message="关闭 web server 开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="export JAVA_HOME=${JAVA_HOME};${tomcatDir}/bin/shutdown.sh;"/> <echo message="关闭 web server 结束"/> </target> <!--启动tomcat--> <target name="gen_startWebServer"> <echo message="启动 web server 开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="export JAVA_HOME=${JAVA_HOME};${tomcatDir}/bin/startup.sh"/> <echo message="启动 web server 结束"/> </target> <!--重启tomcat--> <target name="gen_reStartWebServer"> <echo message="重启 web server 开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="export JAVA_HOME=${JAVA_HOME}; ${tomcatDir}/bin/shutdown.sh; sleep 5; ${tomcatDir}/bin/startup.sh;"/> <echo message="重启 web server 结束"/> </target> <!-- delete ${zip.dir} --> <target name="gen_clean"> <delete dir="${zip.dir}"/> </target> <!--删除服务器缓存--> <target name="gen_delServerWorks"> <echo message="删除服务器缓存 web server 开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="cd ${tomcatDir}/work; rm -rf *;"/> <echo message="删除服务器缓存 web server 结束"/> </target> <!--工程回滚--> <target name="gen_rollBackProject"> <echo message="工程回滚开始"/> <sshexec host="${host}" username="${user}" password="${passwd}" trust="true" command="cd ${bakPath}; cp `ls -ltr *|tail -1|awk '{print $9}'` ${baseDir};cd ${baseDir};rm -rf ${serverName};tar xfz *_${serverName}.tar.gz; rm -rf *_${serverName}.tar.gz;"/> <echo message="工程回滚结束"/> </target> </project>