弄了好久的ant打包終于明白了,貼出來大家分享。<?xml version="1.0" encoding="UTF-8"?>
清理完畢
depends="init"
description="編譯源檔案">
destdir="${dir.java.build}"
deprecation="off"
debug="off"
encoding="gbk"
source="1.5"
target="1.5">
1.project
根結點 基本屬性:name、default、basedir。
name: 項目名稱(可選)
default: 預設開始執行的target。(必需)
basedir: 用于計算所有其他路徑的基路徑。可以被basedir
property覆寫。當覆寫時,該屬性被忽略。如果屬性和basedir
property都沒有設定,就使用build.xml的父目錄。一般basedir=".",設定為build.xml所在的目錄。(可選)
2.target
Attribute屬性
Description屬性值内容
Required
name
target的名字
Y
depends
需要依賴的其他target
N
description
關于target功能的簡短描述
N
if
為了執行本target而被設定的屬性的名字
N
unless
為了執行本target而不被設定的屬性的名字
N
2.1 依賴關系depands
name="A"/>
depends="C,B,A"/>
當執行target D,則先執行A,再B,然後C,最後D。
一個target隻能被執行一次,即使有多個target依賴于它。
2.2 if,unless
if屬性表示該屬性内容的變量如果已經被設定了,則可以執行本target;
unless屬性則表示該屬性内容的變量如果還沒有被設定,則可以執行本target。
僞代碼:
//if="ready" //unless="ready"
if(ready ==
"ok"){ if(ready == null){
execute
target; execute target;
}else
{ }else {
skip; skip;
} }
如果沒有if或unless屬性,target總會被執行。
2.3 description屬性
可選的description屬性可用來提供關于target的一行描述,可由-projecthelp指令行選項輸出
3. task
常用的task:
3.1 建立目錄mkdir
建立一個目錄,如果其父目錄不存在,也會被同時建立。
dir="${dist.dir}" />
dir="${dist.classes.dir}" />
dir="${dist.webapps.dir}" />
3.2 删除目錄delete
includeEmptyDirs="true">
dir="${build}"/>
dir="${dist}"/>
3.3 copy檔案或目錄
file="file" tofile="file.bak"/>
dir="${sourcedir}"/>
dir="${sourcedir}">
name="***.java" />
3.4 move檔案或目錄
file="file" tofile="file.bak"/>
dir="${sourcedir}"/>
dir="${sourcedir}">
name="***.java" />
3.5 compile
id="libraries">
depends="copy-resources">
srcdir="${sourcedir}"
destdir="${targetdir}"
classpathref="libraries" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" />
destfile="${jardir}/my.jar" basedir="${targetdir}"/>
3.6 jar
destfile="${jardir}/my.jar" basedir="${targetdir}"/>
excludes="**/Test.class"
/>
dir="${src}/resources"/>
4. 變量property
除了可以使用自定義的變量,還可以使用java系統屬性, 例如${os.name}對應作業系統的名字,以及Ant内置屬性:
basedir 的basedir屬性
ant.file buildfile的絕對路徑
ant.version Ant的版本
ant.project.name
目前執行的project的名字;由的name屬性設定
ant.java.version
Ant檢測到的JVM的版本
5. build.xml example
/>
/>
/>
destdir="${targetdir}"
classpathref="libraries" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" />
depends="clean">
本文出自
51CTO.COM技術部落格
1.project
根結點 基本屬性:name、default、basedir。
name: 項目名稱(可選)
default: 預設開始執行的target。(必需)
basedir: 用于計算所有其他路徑的基路徑。可以被basedir
property覆寫。當覆寫時,該屬性被忽略。如果屬性和basedir
property都沒有設定,就使用build.xml的父目錄。一般basedir=".",設定為build.xml所在的目錄。(可選)
2.target
Attribute屬性
Description屬性值内容
Required
name
target的名字
Y
depends
需要依賴的其他target
N
description
關于target功能的簡短描述
N
if
為了執行本target而被設定的屬性的名字
N
unless
為了執行本target而不被設定的屬性的名字
N
2.1 依賴關系depands
name="A"/>
depends="C,B,A"/>
當執行target D,則先執行A,再B,然後C,最後D。
一個target隻能被執行一次,即使有多個target依賴于它。
2.2 if,unless
if屬性表示該屬性内容的變量如果已經被設定了,則可以執行本target;
unless屬性則表示該屬性内容的變量如果還沒有被設定,則可以執行本target。
僞代碼:
//if="ready" //unless="ready"
if(ready ==
"ok"){ if(ready == null){
execute
target; execute target;
}else
{ }else {
skip; skip;
} }
如果沒有if或unless屬性,target總會被執行。
2.3 description屬性
可選的description屬性可用來提供關于target的一行描述,可由-projecthelp指令行選項輸出
3. task
常用的task:
3.1 建立目錄mkdir
建立一個目錄,如果其父目錄不存在,也會被同時建立。
dir="${dist.dir}" />
dir="${dist.classes.dir}" />
dir="${dist.webapps.dir}" />
3.2 删除目錄delete
includeEmptyDirs="true">
dir="${build}"/>
dir="${dist}"/>
3.3 copy檔案或目錄
file="file" tofile="file.bak"/>
dir="${sourcedir}"/>
dir="${sourcedir}">
name="***.java" />
3.4 move檔案或目錄
file="file" tofile="file.bak"/>
dir="${sourcedir}"/>
dir="${sourcedir}">
name="***.java" />
3.5 compile
id="libraries">
depends="copy-resources">
srcdir="${sourcedir}"
destdir="${targetdir}"
classpathref="libraries" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" />
destfile="${jardir}/my.jar" basedir="${targetdir}"/>
3.6 jar
destfile="${jardir}/my.jar" basedir="${targetdir}"/>
excludes="**/Test.class"
/>
dir="${src}/resources"/>
4. 變量property
除了可以使用自定義的變量,還可以使用java系統屬性, 例如${os.name}對應作業系統的名字,以及Ant内置屬性:
basedir 的basedir屬性
ant.file buildfile的絕對路徑
ant.version Ant的版本
ant.project.name
目前執行的project的名字;由的name屬性設定
ant.java.version
Ant檢測到的JVM的版本
5. build.xml example
/>
/>
/>
destdir="${targetdir}"
classpathref="libraries" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" />
depends="clean">
本文出自
51CTO.COM技術部落格