ant構建文件時基於xml文件編寫的,默認名稱爲build.xml
bulid.xml示例
<?xml version="1.0"?>
<project name="helloWorld" default="copy" >
<target name="copy" description="copy">
<copy todir="D:\AntTest">
<fileset dir="D:\JavaTest"/>
</copy>
</target>
</project>
ant 默認尋找build.xml
ant targetName 默認執行build.xml某個targe下的動作
如果使用其它文件名 則用 ant -f hello.xml targetName 來執行某個targe
build.xml結構介紹
project元素:
有name default basedir屬性
default屬性指定默認執行的target名
basedir默認值爲build.xml所在目錄的父目錄
target元素:
target有 name depends if unless description
depends 指定依賴關係 被依賴的target先執行 這樣就可以在ant時候 由依賴關係觸發所有target執行
if unless 指定在某些條件執行此target 二者意義相反
description 用於對target進行簡單的描述 沒有實際意義
property元素:
<property name="name" value="haha">
定義一個變量在程序中可以用${name}取得該值
ant 常用任務
copy:
<copy file="" tofile=""/> 複製文件
<copy todir="">
<fileset dir=""/>
</copy>
fileset是屬性dir指定的目錄下的文件,上面這個配置將會把 dir指定的目錄下的文件複製到todir目錄下
但是如果dir目錄仍有目錄,那麼會保持原來的結構,這裏的 fileset中的 目錄和文件都是一樣看待的,但是是有結構的
如果要對fileset進行篩選 haha爲dir下的一個目錄 haha下面仍有文件結構
<fileset dir="" includes="haha"/> 只會複製一個 haha空目錄到todir下
<fileset dir="" includes="haha/"/> 會複製haha以及haha下面的所有結構
<fileset dir="" includes="haha/*"/> 會複製haha下面一級的所有內容 如果有目錄 不會複製目錄中的內容
<fileset dir="" includes="haha/**"/> 同haha/ haha以及haha下的所有內容都會複製到目標目錄
<fileset dir="" includes="haha/*****"/> 同 haha/*
delete
刪除目錄 <delete dir=""/>
刪除文件<delete file=""/>
mkdir
<mkdir dir=""/>
echo
<echo message="" file="" append="true"/>
利用Ant構建和部署java程序
<?xml version="1.0"?>
<project name="helloWorld" default="jar" >
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="run" depends="compile">
<java classname="Test">
<classpath>
<pathelement path="build/classes"/>
</classpath>
</java>
</target>
<target name="jar" depends="run">
<jar destFile="helloworld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-class" value="HelloWorld"/>
</manifest>
</jar>
</target>
</project>
javac 編譯
java 運行
jar 打包成jar文件
<?xml version="1.0"?>
<project name="helloWorld" default="war" >
<target name="war">
<war destfile="antwebproject.war" webxml="AntTest/WEB-INF/web.xml">
<fileset dir="AntTest" includes="**/*.jsp"/>
<lib dir="AntTest/WEB-INF/lib"/>
<classes dir="AntTest/WEB-INF/classes"/>
</war>
</target>
</project>
war 打包javaee項目
怎麼做呢 javaee項目的框架ant是知道的 你所提供的參數就是將具體的內容都給它 就可以了 具體就是 jsp lib/*.jar classes
具體的寫法不用記 理解即可 用到時再拿出來看
以上內容總結自網絡