自動打包部署build.xml


自動打包部署

<?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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM