淺析Java中Ant的使用

Ant是一種基於Java的打包工具,Ant腳本採用XML格式編寫,默認的文件名爲build.xml。html

Ant中經常使用的節點元素java

Projectweb

Project是項目工程的頂級節點,一個build.xml文件能夠包含多個project元素節點。函數

Project主要屬性包括:工具

Name:project節點名稱測試

Default:默認執行的target元素節點名稱ui

Basedir:項目根節點,通常爲「.」。編碼

Propertyspa

  Property用於定義公共常量,包含於project元素內部,以鍵值對形式出現。.net

Property主要屬性包括:

  Name:常量名稱

  Value:常量值

  Location:做用同Value,用於定義文件路徑值,能夠統一處理不一樣系統間路徑符不一致問題。

  取值方法:${name}

Target

  Target用於定義任務,包含於project元素內部,與property同級。同一個project下可包含多個target節點。

  Target主要屬性:

  Name:節點名稱

  Depends:可選,指定target的依賴關係。

Mkdir

  Mkdir用於建立路徑

  Mkdir主要屬性

  Dir:將要被建立的路徑

Delete用於刪除路徑,屬性同上。

Copy

  Copy用於複製文件

  Copy主要屬性:

  File:源文件

  Todir:複製的目標路徑

  Tofile:複製的目標文件

  子節點:FileSet

Move用於移動文件,主要屬性同上。

Fileset

  Fileset文件集合,配合include和exclude使用。

  Fileset主要屬性:

  Dir:指定源文件路徑

  

Include:用於描述fileset包含哪些文件

Exclude:用於描述fileset不包含哪些文件

Javac

  Javac用於編譯Java源文件。

  Javac主要屬性:

  Srcdir:標明源文件位置

  Destdir:編譯後文件存放位置

  Encoding:指定編碼格式

  Classpath:指定lib位置

  Debug:是否輸出調試信息

Javadoc

  

Jar

  Jar用於將指定文件或文件夾下內容進行打包

  Jar主要屬性

  Jarfile:指定生產jar文件路徑及名稱

  Basedir:指定源文件位置

  Jar的子節點manifest

  Manifest用於指定最後生成jar包中manifest.mf文件中內容

  經常使用屬性:

  <property name=」Main-Class」value=「xxxx.xxx.xxx.Xxxx」/>

  用於指定jar包的主方法

下面提供一個簡單,但基本功能較全的build.xml文檔。

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <project name="AntProject" basedir="." default="zip">  
  3.   
  4.     <!-- 定義時間戳 -->  
  5.     <tstamp></tstamp>  
  6.       
  7.     <property name="classes" location="./build/classes"/>  
  8.     <property name="jarpath" location="./build/jar"/>  
  9.     <property name="warpath" location="./build/war"/>  
  10.     <property name="zippath" location="./build/zip"/>  
  11.     <property name="javadoc" location="./build/javadoc"/>  
  12.     <property name="windowtitile" value="Ant Project Title"/>  
  13.     <property name="jarfile" location="${jarpath}/AntProject_${DSTAMP}.jar"/>  
  14.     <property name="warfile" location="${warpath}/AntProject_${DSTAMP}.war"/>  
  15.     <property name="zipfile" location="${zippath}/AntProject_${DSTAMP}.zip"/>  
  16.   
  17.     <target name="init">  
  18.         <mkdir dir="${classes}"/>  
  19.         <mkdir dir="${jarpath}"/>  
  20.         <mkdir dir="${warpath}"/>  
  21.         <mkdir dir="${zippath}"/>  
  22.         <mkdir dir="${javadoc}"/>  
  23.     </target>  
  24.       
  25.     <!--  
  26.     若是有額外的jar包,能夠再這裏指定,再下面的classpath處進行引用  
  27.     <path id="classpath">  
  28.         <pathelement path="your jar jar file path"/>  
  29.     </path>  
  30.     -->  
  31.       
  32.     <!-- 編譯java源文件 -->  
  33.     <target name="compile" depends="init">  
  34.         <javac srcdir="./src" destdir="${classes}" includeantruntime="false">  
  35.             <!-- 
  36.                 <classpath refid="classpath"/> 
  37.             -->  
  38.         </javac>  
  39.     </target>  
  40.       
  41.     <!-- 生成javadoc文檔 -->  
  42.     <target name="javadoc" depends="init">  
  43.         <javadoc sourcepath="./src" destdir="${javadoc}" encoding="utf-8" charset="gb2312" windowtitle="${windowtitile}">  
  44.             <!-- 
  45.                 <classpath refid="classpath"/> 
  46.             -->  
  47.         </javadoc>  
  48.     </target>  
  49.       
  50.     <!-- 打成jar包 -->  
  51.     <target name="jar" depends="compile">  
  52.         <jar destfile="${jarfile}" basedir="${classes}">  
  53.             <!-- Manifest.mf內容 設置主方法,生成jar包能夠直接雙擊運行 -->  
  54.             <manifest>  
  55.                 <attribute name="Main-Class" value="com.ant.MainClass"/>  
  56.             </manifest>  
  57.         </jar>  
  58.     </target>  
  59.       
  60.     <!-- 打成war包     這裏不是一個web工程,找不到WEB-INFO/web.xml文件,添加屬性needxmlfile=false便可 -->  
  61.     <target name="war" depends="compile">  
  62.         <war destfile="${warfile}" basedir="${classes}" needxmlfile="false"></war>  
  63.     </target>  
  64.       
  65.     <!-- 將整個工程打成一個zip壓縮包 -->  
  66.     <target name="zip" depends="javadoc,jar,war">  
  67.         <zip destfile="${zipfile}" basedir="."></zip>  
  68.     </target>  
  69. </project>  

 

 

 

 

項目結構:

build以前項目結構

MainClass.java內容

 

[java]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. package com.ant;  
  2.   
  3. import javax.swing.JFrame;  
  4.   
  5. /** 
  6.  *  
  7.  * 用於測試Ant的使用 
  8.  *  
  9.  * @version 1.0 
  10.  * @author Tony.Sun 
  11.  *  
  12.  */  
  13. public class MainClass {  
  14.   
  15.     /** 
  16.      * 構造函數,初始化窗口 
  17.      *  
  18.      * @see MainClass#instanceFrame() 
  19.      */  
  20.     public MainClass(){  
  21.         instanceFrame();  
  22.     }  
  23.       
  24.     /** 
  25.      * 定義一個500*400、title爲「MainFrame」的窗口 
  26.      */  
  27.     private void instanceFrame()  
  28.     {  
  29.         JFrame jf = new JFrame("MainFrame");  
  30.         jf.setSize(500, 400);  
  31.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  32.         jf.setVisible(true);  
  33.     }  
  34.   
  35.     /** 
  36.      * main方法 
  37.      * @param args 
  38.      */  
  39.     public static void main(String[] args) {  
  40.           
  41.         new MainClass();  
  42.           
  43.     }  
  44. }  

 

 

 

 


使用Ant進行build,輸出以下

 

[java]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. Buildfile: C:\Users\tony.sun\workspace\AntProject\build.xml  
  2. init:  
  3.     [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\classes  
  4.     [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\jar  
  5.     [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\war  
  6.     [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\zip  
  7.     [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\javadoc  
  8. javadoc:  
  9.   [javadoc] Generating Javadoc  
  10.   [javadoc] Javadoc execution  
  11.   [javadoc] Loading source files for package com.ant...  
  12.   [javadoc] Constructing Javadoc information...  
  13.   [javadoc] Standard Doclet version 1.7.0_25  
  14.   [javadoc] Building tree for all the packages and classes...  
  15.   [javadoc] Building index for all the packages and classes...  
  16.   [javadoc] Building index for all classes...  
  17. compile:  
  18.     [javac] Compiling 1 source file to C:\Users\tony.sun\workspace\AntProject\build\classes  
  19. jar:  
  20.       [jar] Building jar: C:\Users\tony.sun\workspace\AntProject\build\jar\AntProject_20140529.jar  
  21. war:  
  22.       [war] Building war: C:\Users\tony.sun\workspace\AntProject\build\war\AntProject_20140529.war  
  23. zip:  
  24.       [zip] Building zip: C:\Users\tony.sun\workspace\AntProject\build\zip\AntProject_20140529.zip  
  25. BUILD SUCCESSFUL  
  26. Total time: 2 seconds  

 

 

 

 


build以後目錄結構

build以後目錄結構

相關文章
相關標籤/搜索