Ant 打 war 包過程

Ant 相關的介紹我就不詳述了,網上這方面介紹仍是比較多的,下面我就用一個簡單的 web 應用作示例。
附件 anttest.rar 包裏面是一個簡單的登錄應用,輸入用戶和密碼跳轉成功頁面並顯示輸入的值,這個工程是用 myeclispe 寫的,下面我就模擬實現 myeclipse 的 tomcat 發佈 web 應用,將這個應用打包到 tomcat 的 webapps 目錄下。

1.構建ant環境
1)安裝jdk,設置JAVA_HOME ,PATH ,CLASS_PATH。
2)下載ant 地址www.apache.org。
3)解壓ant 你獲得的是一個壓縮包,解壓縮它
4)設置ANT_HOME PATH中添加ANT_HOME目錄下的bin目錄。
5)測試一下你的設置。開始-->運行-->cmd進入命令行-->鍵入 ant 回車,若是看到
Buildfile: build.xml does not exist!
Build failed
說明配置已經OK
2.解壓附件 anttest.rar 壓縮包隨便放到哪一個目錄下面,將下面的 build.xml 放在和 anttest 同一個目錄下面

build.xml:

Build.xml代碼   收藏代碼
  1. <project basedir="." default="publish" name="anttest">  
  2.     <target name="init" description="設置初始化打 war 包須要的路徑變量">  
  3.         <property name="name" value="anttest"/>  
  4.         <property name="src" value="${basedir}/anttest/src"/>  
  5.         <property name="lib" value="${basedir}/anttest/WebRoot/WEB-INF/lib"/>  
  6.         <property name="webapp" value="${basedir}/anttest/WebRoot"/>  
  7.         <property name="packages" value="ant.*"/>  
  8.           
  9.         <property name="build.src" value="${basedir}/AntBuild/anttest/src"/>  
  10.         <property name="build.dest" value="${basedir}/AntBuild/anttest/WEB-INF/classes"/>  
  11.         <property name="buildwar.dest" value="${basedir}/AntBuild/anttest"/>  
  12.         <property name="build.javadocs" value="${basedir}/AntBuild/doc"/>  
  13.         <property name="jar.dest" value="${basedir}/AntBuild/jar"/>  
  14.         <property name="war.dest" value="${basedir}/AntBuild/war"/>  
  15.           
  16.         <property name="tomcat.home" value="D:\Program Files\Apache Software Foundation\Tomcat 6.0"/>  
  17.         <property name="j2eelib.dir" value="D:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806\data\libraryset\EE_5"/>  
  18.           
  19.         <path id="classpath">  
  20.             <fileset dir="${j2eelib.dir}">  
  21.                 <include name="**/*.jar"/>  
  22.             </fileset>  
  23.             <fileset dir="${lib}">  
  24.                 <include name="**/*.jar"/>  
  25.             </fileset>  
  26.         </path>  
  27.     </target>  
  28.       
  29.     <target name="prepare" depends="init" description="建立打包須要的路徑,拷貝源文件到打包路徑下">  
  30.         <mkdir dir="${build.src}"/>  
  31.         <mkdir dir="${build.dest}"/>  
  32.         <mkdir dir="${buildwar.dest}"/>  
  33.         <mkdir dir="${jar.dest}"/>  
  34.         <mkdir dir="${war.dest}"/>  
  35.         <copy todir="${build.src}">  
  36.             <fileset dir="${src}"/>  
  37.         </copy>  
  38.         <copy todir="${buildwar.dest}">  
  39.             <fileset dir="${webapp}"/>  
  40.         </copy>  
  41.     </target>  
  42.       
  43.     <target name="build" depends="prepare" description="編譯 java 文件,拷貝 properties 屬性配置文件到編譯後的路徑下">  
  44.         <javac srcdir="${build.src}" destdir="${build.dest}">  
  45.             <classpath refid="classpath"/>  
  46.         </javac>  
  47.         <copy todir="${build.dest}">  
  48.             <fileset dir="${build.src}">  
  49.                 <include name="**/*.properties"/>  
  50.             </fileset>  
  51.         </copy>  
  52.     </target>  
  53.       
  54.     <target name="antwar" depends="javadoc" description="打 war 包,不將 java 文件打入包內">  
  55.         <delete dir="${build.src}"/>  
  56.         <war warfile="${war.dest}/anttest.war" webxml="${buildwar.dest}/WEB-INF/web.xml">  
  57.             <lib dir="${buildwar.dest}/WEB-INF/lib"/>  
  58.             <classes dir="${build.dest}"/>  
  59.             <fileset dir="${buildwar.dest}"/>  
  60.         </war>  
  61.     </target>  
  62.       
  63.     <target name="publish" depends="antwar,clean" description="發佈 war 包至 tomcat 目錄下">  
  64.         <copy todir="${tomcat.home}/webapps">  
  65.             <fileset dir="${war.dest}">  
  66.                 <include name="**/*.war"/>  
  67.             </fileset>  
  68.         </copy>  
  69.     </target>  
  70.       
  71.     <target name="javadoc" depends="build" description="生成 java 的 API 幫助文檔">  
  72.         <mkdir dir="${build.javadocs}"/>  
  73.         <javadoc packagenames="${packages}" sourcepath="${build.src}" destdir="${build.javadocs}" author="true" version="true" use="true" splitindex="true" windowtitle="${name} API" doctitle="${name}">  
  74.             <classpath refid="classpath"/>  
  75.         </javadoc>  
  76.     </target>  
  77.       
  78.     <target name="clean" depends="init" description="清除打包用臨時文件">  
  79.         <delete dir="${build.src}"/>  
  80.         <delete>  
  81.             <fileset dir="${build.dest}" includes="**/*.classes"/>  
  82.         </delete>  
  83.         <delete dir="${buildwar.dest}"/>  
  84.     </target>  
  85. </project>  

注意:裏面有個 j2ee 的 jar 包目錄,若是要測試的話把這個目錄換成本機的這個目錄,而後就能夠在命令行裏面到這個目錄下直接執行 ant 命令就能夠看到效果了。

3.最後執行的結果以下:
D:\temp>ant
Buildfile: build.xml

init:

prepare:
    [mkdir] Created dir: D:\temp\AntBuild\anttest\src
    [mkdir] Created dir: D:\temp\AntBuild\anttest\WEB-INF\classes
    [mkdir] Created dir: D:\temp\AntBuild\jar
    [mkdir] Created dir: D:\temp\AntBuild\war
     [copy] Copying 4 files to D:\temp\AntBuild\anttest\src
     [copy] Copying 19 files to D:\temp\AntBuild\anttest

build:
    [javac] Compiling 2 source files to D:\temp\AntBuild\anttest\WEB-INF\classes

     [copy] Copying 2 files to D:\temp\AntBuild\anttest\WEB-INF\classes

javadoc:
    [mkdir] Created dir: D:\temp\AntBuild\doc
  [javadoc] Generating Javadoc
  [javadoc] Javadoc execution
  [javadoc] 正在裝入軟件包 ant.action 的源文件...
  [javadoc] 正在裝入軟件包 ant.form 的源文件...
  [javadoc] 正在構造 Javadoc 信息...
  [javadoc] 標準 Doclet 版本 1.5.0_06
  [javadoc] 正在構建全部軟件包和類的樹...
  [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/action/\LoginAction.html...
  [javadoc] D:\temp\AntBuild\anttest\src\ant\action\LoginAction.java:26: 警告 -
@struts.action 是未知標記。
  [javadoc] D:\temp\AntBuild\anttest\src\ant\action\LoginAction.java:26: 警告 -
@struts.action-forward 是未知標記。
  [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/form/\LoginForm.html...
  [javadoc] D:\temp\AntBuild\anttest\src\ant\form\LoginForm.java:19: 警告 - @str uts.form 是未知標記。   [javadoc] 正在生成 D:\temp\AntBuild\doc\overview-frame.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/action/\package-frame.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/action/\package-summary.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/action/\package-tree.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/form/\package-frame.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/form/\package-summary.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/form/\package-tree.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\constant-values.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\serialized-form.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/action/\class-use\LoginAction.html ...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/form/\class-use\LoginForm.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/action/\package-use.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\ant/form/\package-use.html...   [javadoc] 正在構建全部軟件包和類的索引...   [javadoc] 正在生成 D:\temp\AntBuild\doc\overview-tree.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\index-files\index-1.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\index-files\index-2.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\index-files\index-3.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\index-files\index-4.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\index-files\index-5.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\index-files\index-6.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\index-files\index-7.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\deprecated-list.html...   [javadoc] 正在構建全部類的索引...   [javadoc] 正在生成 D:\temp\AntBuild\doc\allclasses-frame.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\allclasses-noframe.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\index.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\overview-summary.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\help-doc.html...   [javadoc] 正在生成 D:\temp\AntBuild\doc\stylesheet.css...   [javadoc] 3 警告 antwar:    [delete] Deleting directory D:\temp\AntBuild\anttest\src       [war] Building war: D:\temp\AntBuild\war\anttest.war clean:    [delete] Deleting directory D:\temp\AntBuild\anttest publish:      [copy] Copying 1 file to D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps BUILD SUCCESSFUL Total time: 3 seconds
相關文章
相關標籤/搜索