使用Ant發布web應用到tomcat

來源:互聯網
上載者:User
使用Ant發布web應用到tomcat

         今天在公司用ant寫了個部署web應用的指令碼,閑來無事,就稍微總結一下,以供以後參照使用,也希望作為一個demo, 能對大家有啟迪的作用,如果真的如此,我也就很是欣慰了。

         好了,言歸正傳,下面就開始記流水賬吧。

一.Ant簡介

        Ant是一種基於java的build工具,有些類似於unix系統中的make命令,Ant是Apache軟體基金會Jakarta目錄中的一個子項目,具有跨平台性,操作簡單。。等特點。

         這裡就不說這些老套的話了,大家知道就是一種build工具就可以了,具體有什麼用和怎麼用,我們稍後說明。

二.Ant的主要標籤及資料類型

        Ant構建檔案是一個xml檔案,一般預設命名為build.xml,如果是web project,通常把構建檔案放在頂層目錄下,即和src檔案夾並列。

         一個Ant構建檔案需要定義一個唯一的項目元素(project元素),還可以定義多個目標元素(target元素),各個目標元素之間可以有一定的依賴關係,如:

<target name="compile">
<target name="deploy" depends="compile">

如上,deploy依賴與compile,即:系統必須先compile完了,然後才能deploy。

下面簡要介紹一下Ant的主要標籤:

1.<project>標籤
 每個構建檔案對應一個項目。<project>標籤是構建檔案的根標籤。它可以有多個內在屬性,其各個屬性的含義分別如下:
(1) default表示預設的運行目標,這個屬性是必須的。
(2) basedir表示項目的基準目錄。
(3) name表示項目名。
(4) description表示項目的描述。

2.<target>標籤
Target的常用屬性如下。
(1).name表示目標名稱,這個屬性是必須的。
(2).depends表示依賴的目標。
(3)if表示僅當屬性設定時才執行。
(4)unless表示當屬性沒有設定時才執行。
(5)description表示項目的描述。
Ant的depends屬性指定了target的執行順序。Ant會依照depends屬性中target出現順序依次執行每個target。在執行之前,首先需要執行它所依賴的target。

3.<mkdir>標籤
該標籤用於建立一個目錄,它有一個屬性dir用來指定所建立的目錄名。

4<jar>標籤
該標籤用來產生一個JAR檔案,其屬性如下。
(1) destfile表示要產生的JAR檔案名稱。
(2) basedir表示被歸檔的檔案名稱。
(3) includes表示需要歸檔的檔案模式。
(4) exchudes表示被排除的檔案模式。

5.<javac標籤>
該標籤用於編譯一個或一組java檔案,其屬性如下。
(1).srcdir表示來源程式的目錄。
(2).destdir表示class檔案的輸出目錄。
(3).include表示被編譯的檔案的模式。
(4).excludes表示被排除的檔案的模式。
(5).classpath表示所使用的類路徑。
(6).debug表示包含的調試資訊。
(7).optimize表示是否使用最佳化。
(8).verbose 表示提供詳細的輸出資訊。
(9).fileonerror表示當碰到錯誤就自動停止。

6.<java>標籤
該標籤用來執行編譯產生的.class檔案,其屬性如下。
(1).classname 表示將執行的類名。
(2).jar表示包含該類的JAR檔案名稱。
(3).classpath所表示用到的類路徑。
(4).fork表示在一個新的虛擬機器中運行該類。
(5).failonerror表示當出現錯誤時自動停止。
(6).output 表示輸出檔案。
(7).append表示追加或者覆蓋預設檔案。

7.<delete>標籤
該標籤用於刪除一個檔案或一組檔案,其屬性如下。
(1)/file表示要刪除的檔案。
(2).dir表示要刪除的目錄。
(3).includeEmptyDirs 表示指定是否要刪除空目錄,預設值是刪除。
(4).failonerror 表示指定當碰到錯誤是否停止,預設值是自動停止。

8.<copy>標籤
該標籤用於檔案或檔案集的拷貝,其屬性如下。
(1).file 表示源檔案。
(2).tofile 表示目標檔案。
(3).todir 表示目標目錄。
(4).overwrite 表示指定是否覆蓋目標檔案,預設值是不覆蓋。
(5).includeEmptyDirs 表示制定是否拷貝空目錄,預設值為拷貝。
(6).failonerror 表示指定如目標沒有發現是否自動停止,預設值是停止。

如果我們部署一個 web應用的話,經常用到的標籤有:delete,mkdir,copy,jar,target,project。

三.使用Ant發布web應用到tomcat

下面我們以一個簡單的例子,來示範如何使用Ant發布web應用到tomcat。我們假設有個很簡單的web projcet,我們想使用Ant來將服務部署到tomcat,假設在web project的根目錄下有個build.xml檔案,我們可以如此編輯該構建檔案。

<project name="demo" basedir=".">
                      <!--定義tomcat所在目錄-->
    <property name="webapp" value="D:/tomcat/webapps/ROOT" />
    <target name="core">
        <!--刪除原來部署的檔案-->
        <delete dir="${webapp}"></delete>
        <mkdir dir="${webapp}" />
                                           <!--將編譯後的檔案拷貝到tomcat目錄下-->
        <copy todir="${webapp}" overwrite="true">
            <fileset dir="${basedir}/WebRoot"/>
        </copy>
    </target>
</project>

         完事了?yes!非常簡單!當然,如上代碼的前提是:在eclipse+Myeclipse環境下開發,並且將自動編譯開關開開,這樣我們只需要將編譯好的檔案拷貝到tomcat目錄下即可,如果不是在這種環境下開發,我們可能就需要先使用javac命令編譯一下,然後再拷貝到tomcat目錄下。

          如果我們想把該web project中的java檔案打成jar包,放置在WEB-INF/lib目錄下,將其他檔案拷貝到tomcat/webapps目錄下,我們可以使用如下構建檔案:

<project name="demo" basedir=".">
    <property name="webapp" value="D:/tomcat/webapps/ROOT" />
    <target name="core">
        <!--刪除原來部署的檔案-->
        <delete dir="${webapp}"></delete>
        <mkdir dir="${webapp}" />
<!--除了class檔案外,其他檔案拷貝到tomcat目錄下-->
        <copy todir="${webapp}" overwrite="true">
            <fileset dir="${basedir}/WebRoot" excludes="**/*.class"/>
        </copy>
<!--將class檔案打包,放到/WEB-INF/lib目錄下-->
        <jar destfile="${webapp}/WEB-INF/lib/test.jar">
            <fileset dir="${basedir}/WebRoot/WEB-INF/classes">
                <include name="**/*.class" />
            </fileset>
        </jar>
    </target>
</project>

怎麼樣?我們上面用到了copy,delete,mkdir,fileset,include,excludes這些標籤,你可明白?

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.