自動打包部署
<?xml version="1.0" encoding="UTF-8"?> <project name="demo" default="deleteWar" basedir="."> <property name="build" value="${basedir}/build"/> <property name="build.class" value="${build}/classes"/> <property name="src" value="${basedir}/src"/> <property name="web" value="${basedir}/web"/> <property name="lib" value="${web}/WEB-INF/lib"/> <!--TOMCAT路徑--> <property name="webserver" value="E:\apache-tomcat-8.5.37"/> <!--定義CLASSPACH,編譯時用到外部的包--> <path id="classpath"> <pathelement location="${src}"/> <fileset dir="${lib}" includes="***.jar"/> </path> <!--刪除任務--> <target name="clean" description="刪除"> <echo message="刪除目錄"/> <delete dir="${build}"/> </target> <!--創建一個臨時目錄--> <target name="init" description="創建目錄" depends="clean"> <echo message="創建目錄--以執行"/> <mkdir dir="${build.class}"/> </target> <!--編譯java源文件--> <target name="compile" description="編譯文件" depends="init"> <echo message="編譯文件"/> <javac srcdir="${src}" destdir="${build.class}"> <classpath refid="classpath"/> <compilerarg line="-encoding GBK "/> </javac> </target> <!--打成WAR包--> <target name="generwar" depends="compile"> <echo message="打成WAR"/> <war destfile="${build}/${ant.project.name}.war" webxml="${web}/WEB-INF/web.xml"> <fileset dir="web"/> <lib dir="${lib}"/> <classes dir="${build.class}"/> </war> </target> <!--把WAR放到一個指定目錄,這里是直接布署到TOMCAT服務器--> <target name="fabu" depends="generwar" description="發布"> <copy file="${build}/${ant.project.name}.war" todir="${webserver}/webapps"/> </target> <!--把打好的WAR刪除--> <target name="deleteWar" depends="fabu" description="刪除服務器上的war"> <delete dir="${build}"/> </target> <!--停止tomcat--> <target name="stop_tomcat"> <echo>停止tomcat</echo> <exec executable="cmd" dir="${webserver}/bin" failonerror="false" append="true"> <env key="CATALINA_HOME" path="${webserver}"/> <arg value="/c shutdown.bat"/> </exec> </target> <!--啟動tomcat--> <!--這里做的主要是部署本地Tomcat服務器的過程,差不多的思路是先把war發布到webapps目錄下,接着再重啟服務器--> <target name="start_tomcat" depends="fabu,stop_tomcat"> <echo>啟動tomcat</echo> <exec executable="cmd" dir="${webserver}/bin" failonerror="false" append="true"> <env key="CATALINA_HOME" path="${webserver}"/> <arg value="/c startup.bat"/> </exec> </target> <!--部署到遠程服務器--> <!--這里模擬了一個利用ant部署到遠程服務器的過程,server是ftp服務器IP地址,userid和password是ftp服務器的賬號 和密碼,remotedir是你在建立服務器時,為服務器建立的目錄,我建立的是D:\apache-tomcat-8.0.43\webapps,fileset 是你要上傳的文件,要利用ftp上傳需要導入兩個jar包,commons-net-1.4.0.jar、jakarta-oro-2.0.8.jar --> <target name="deploy" depends="generwar"> <ftp server="127.0.0.1" userid="admin" password="123456" remotedir="/"> <fileset dir="${build}"> <include name="*.war"/> </fileset> </ftp> </target> </project>