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文檔。
- <?xml version="1.0" encoding="utf-8"?>
- <project name="AntProject" basedir="." default="zip">
-
-
- <tstamp></tstamp>
-
- <property name="classes" location="./build/classes"/>
- <property name="jarpath" location="./build/jar"/>
- <property name="warpath" location="./build/war"/>
- <property name="zippath" location="./build/zip"/>
- <property name="javadoc" location="./build/javadoc"/>
- <property name="windowtitile" value="Ant Project Title"/>
- <property name="jarfile" location="${jarpath}/AntProject_${DSTAMP}.jar"/>
- <property name="warfile" location="${warpath}/AntProject_${DSTAMP}.war"/>
- <property name="zipfile" location="${zippath}/AntProject_${DSTAMP}.zip"/>
-
- <target name="init">
- <mkdir dir="${classes}"/>
- <mkdir dir="${jarpath}"/>
- <mkdir dir="${warpath}"/>
- <mkdir dir="${zippath}"/>
- <mkdir dir="${javadoc}"/>
- </target>
-
- <!--
- 若是有額外的jar包,能夠再這裏指定,再下面的classpath處進行引用
- <path id="classpath">
- <pathelement path="your jar jar file path"/>
- </path>
- -->
-
-
- <target name="compile" depends="init">
- <javac srcdir="./src" destdir="${classes}" includeantruntime="false">
-
- </javac>
- </target>
-
-
- <target name="javadoc" depends="init">
- <javadoc sourcepath="./src" destdir="${javadoc}" encoding="utf-8" charset="gb2312" windowtitle="${windowtitile}">
-
- </javadoc>
- </target>
-
-
- <target name="jar" depends="compile">
- <jar destfile="${jarfile}" basedir="${classes}">
-
- <manifest>
- <attribute name="Main-Class" value="com.ant.MainClass"/>
- </manifest>
- </jar>
- </target>
-
-
- <target name="war" depends="compile">
- <war destfile="${warfile}" basedir="${classes}" needxmlfile="false"></war>
- </target>
-
-
- <target name="zip" depends="javadoc,jar,war">
- <zip destfile="${zipfile}" basedir="."></zip>
- </target>
- </project>
項目結構:
MainClass.java內容
- package com.ant;
-
- import javax.swing.JFrame;
-
- public class MainClass {
-
-
- public MainClass(){
- instanceFrame();
- }
-
-
- private void instanceFrame()
- {
- JFrame jf = new JFrame("MainFrame");
- jf.setSize(500, 400);
- jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- jf.setVisible(true);
- }
-
-
- public static void main(String[] args) {
-
- new MainClass();
-
- }
- }
使用Ant進行build,輸出以下
- Buildfile: C:\Users\tony.sun\workspace\AntProject\build.xml
- init:
- [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\classes
- [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\jar
- [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\war
- [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\zip
- [mkdir] Created dir: C:\Users\tony.sun\workspace\AntProject\build\javadoc
- javadoc:
- [javadoc] Generating Javadoc
- [javadoc] Javadoc execution
- [javadoc] Loading source files for package com.ant...
- [javadoc] Constructing Javadoc information...
- [javadoc] Standard Doclet version 1.7.0_25
- [javadoc] Building tree for all the packages and classes...
- [javadoc] Building index for all the packages and classes...
- [javadoc] Building index for all classes...
- compile:
- [javac] Compiling 1 source file to C:\Users\tony.sun\workspace\AntProject\build\classes
- jar:
- [jar] Building jar: C:\Users\tony.sun\workspace\AntProject\build\jar\AntProject_20140529.jar
- war:
- [war] Building war: C:\Users\tony.sun\workspace\AntProject\build\war\AntProject_20140529.war
- zip:
- [zip] Building zip: C:\Users\tony.sun\workspace\AntProject\build\zip\AntProject_20140529.zip
- BUILD SUCCESSFUL
- Total time: 2 seconds
build以後目錄結構