天天看點

ant打包java項目_ant-build.xml打包應用程式【總結】

弄了好久的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技術部落格