eclipse ant 構建項目

來源:互聯網
上載者:User

 

主要內容:

1 java的構建工具ant

2 ant 的projects,targets,tasks,properties

3 簡單的ant 構建檔案

5.3.1
xml和html
xml:extensible markup language 可延伸標記語言 (XML)
1) html表現的是如何在網頁上顯示資料,他定義了一套標準的標籤。
2) Html的標籤有開始標籤,可以沒有結束標籤如:《p》….《/p》也可以《p》而xml則必須匹配開始和結束標籤
3) Xml的標籤的嵌套必須正確而html則不必如:《b》《i》this is not valid in xml《/b》《/i》
4) Xml的標籤是大小寫敏感的,html則不是

元素:一個開始標籤和一個結束標籤定義了一個元素。
屬性:開始標籤中的名-值對是屬性
xml中的注釋:《! - -  do something here - - 》
空元素的寫法:《java classname=”Hello.class”》《/java》或《java classname=”Hello.class” /》
5.3.2 ant 的預設構建描述檔案是build.xml
在eclipse中運行ant指令碼:在build.xml上右鍵選擇run ant 可在控制台中顯示結果
ant已整合到eclipse中,如果要得到新版本的ant,則其下載地址是:http://ant.apache.org
A  《project》
屬性  描述   是否必須
default  要啟動並執行預設目標 Y
name  項目名   N
basedir  基目錄   N
description 項目描述  N
屬性

《project name=”Hello” default=”compile” basedir=”.” Description=”Hello,World build file”》
‘.’代表的是build.xml所在的目錄
可以嵌套的標籤《description》《target》《property》

B Targets
屬性  描述    是否必須
name  目標名    Y
depends  依賴列表   N
if  指定屬性被設定時執行  N
unless  當指定屬性未被設定時執行 N
description 目標描述   N

《target name=”compile” depends=”init” description =”Compile all sources”》

C Tasks

《buildnumber》從檔案中讀取構建的計數器每構建一次計數器加一寫迴文件

屬性 描述    是否必須
file 讀取的屬性預設build.number N

《buildnumber file=”buildnum.txt” /》

copy任務屬性
屬性   描述   是否必須
file   源檔案名稱 Y,除非使用fileset
tofile   目標檔案名 Y,除非使用 todir
todir   目標目錄 Y,如果多於1個檔案
overwrite  覆蓋較新的目標檔案 N,預設false
includeEmptyDirs 拷貝空目錄 N,預設true
failonerror  檔案未發現停止構建 N,預設true
verbose   列出拷貝檔案 N,預設false

《copy file=”log4j.properties” todir=”bin” /》
《copy》拷貝一個檔案file 屬性 拷貝一組檔案 《fileset》 元素嵌套

delete任務屬性
屬性   描述  是否必須
file   要刪除的檔案 Y,除非是dir或fileset
dir   要刪除的目錄 Y,除非file fileset
verbose   刪除檔案清單 N,預設false
failonerror  有錯誤停在 N,預設true
includeEmptyDirs 刪除的目錄當fileset指定 N,預設false

《delete file=”ant.log” /》
《delete dir=”temp” /》
《delete》 刪除一個檔案使用file屬性,一組檔案用《fileset》元素嵌套或目錄用 directory屬性

echo任務屬性:
《echo》向終端,檔案寫資訊
屬性 描述  是否必須
message 資訊  Y,除非文本做為元素內容
file 輸出檔案 N
append 是否追加到檔案 N,預設false
《echo messag=”Hello” /》
《echo》this is a Message form ant 《/echo》

jar任務屬性:
《jar》將一組檔案壓縮為一個jar檔案
屬性  描述  是否必須
destfile Jar檔案名稱 Y
basedir 要打包的目錄 N
includes 包含的檔案 N
excludes 排除的檔案 N

《jar destfile=”dist/persistence.jar” basedir=”bin” includes=”org/ecli/persis/**,org/ecli/astr/**” excludes=”*Text*.class” /》
《jar destfile="dist/persistence.jar"》
《include name="**/*.class"/》
《exclude name="**/*Test*"/》
《/jar》
java任務屬性:
《java》 可以嵌套的元素《classpath》用來替代classpath屬性
屬性   描述  是否必須
classname 要啟動並執行類名  Y,除非指定jar
jar  執行的jar  Y,除非指定clsssname
classpath 使用的類路徑  N
fork  是否使用較新的JVM N,預設false
failonerror 錯誤發生是否停止 N,預設false
output  輸出檔案  N
append  追加或覆蓋預設檔案 N
《java classname="HelloWorld"/》
《java classname="Add" classpath="${basedir}/bin"》
《arg value="100"/》
《arg value="200"/》
《/java》
《arg》 指定命令列參數

javac任務屬性:
《javac》 編譯java檔案 可以嵌套的元素《classpath》《jar》
屬性   描述  是否必須
srcdir   來源目錄  Y,除非src使用
destdir   輸出目錄 N
includes  包含的編譯檔案 N,預設包含所有java檔案
excludes  忽略的檔案 N
classpath  使用的類路徑 N
debug   是否包含調試資訊 N,預設false
optimize  使用最佳化 N,預設false
verbose   提供verbose輸出 N
failonerror  錯誤發生是否停止 N,預設true

《javac srcdir="src" destdir="bin"/》
《javac srcdir="${basedir}" destdir="bin"
includes="org/eclipseguide/persistence/**"
excludes="**/*Test*"》
《classpath》
《pathelement path="${java.class.path}"/》
《pathelement location=
"D:/log4j/jakarta-log4j-1.2.8/dist/lib/log4j-1.2.8.jar"/》
《/classpath》
《/javac》
javadoc任務屬性:
《javadoc》從java的源檔案中產生javadoc文檔,可嵌套的元素為《fileset》《packageset》《classpath》
屬性  描述   是否必須
sourcepath 源路徑 Y,除非指定sorcefiles,sorcepathref
sourcepathref 源路徑參照 Y, 除非指定sorcepath,sorcefiles
sourcefiles 源檔案,逗號分隔 Y, 除非指定sorcepath,sorcepathref
destdir  目標目錄 Y, 除非指定doclet
classpath 類路徑 N
public  僅顯示公用類,成員 N
protected 僅顯示保護的,公用類,成員 N,預設true
package  僅顯示包,保護的,公用類,成員 N
private  顯示所有類,成員 N
version  包含版本資訊 N
use  包含use資訊 N
author  包含作者資訊 N
failonerror 錯誤發生是否停止 N,預設true

《javadoc destdir="doctest"
sourcefiles=
"src/org/eclipseguide/persistence/ObjectManager.java"/》
《javadoc destdir="doc"
author="true"
version="true"
use="true"
package="true"》
《fileset dir="${src}/org/eclipseguide/astronomy/"》
《include name="**/*.java"/》
《exclude name="**/*Test*"/》
《/fileset》
《classpath》
《pathelement path="${java.class.path}"/》
《pathelement location=
"D:/log4j/jakarta-log4j-1.2.8/dist/lib/log4j-1.2.8.jar"/》
《/classpath》
《/javadoc》

《mkdir》建立目錄
屬性 描述 是否必須
dir 要建立的目錄 Y
《mkdir dir="dist/doc"/》
《tstamp》時間戳記
DSTAMP yyyyMMdd
TSTAMP hhmm
TODAY MMM dd yyyy
C 屬性
可以把屬性寫在一個檔案中,用《property file=”build.properties”》指定並讀取
# build.properties
junit_home=D:/junit/junit3.8.1
log4j_home=D:/log4j/jakarta-log4j-1.2.8
可以這樣使用:
《property file="build.properties"/》

D fileset
《fileset》中的萬用字元
‘?’ 任何一個字元
‘*’0個或多個字元
‘**’0個或多個目錄
屬性  描述 是否必須
dir  目錄 Y
includes 包含檔案 N
excludes 排除檔案 N
《fileset dir="src/org/eclipseguide/astronomy"
includes="**/*.java"
excludes="**/*Test*"/》
《fileset dir="src/org/eclipseguide/astronomy/"》
《include name="**/*.java"/》
《exclude name="**/*Test*"/》
《/fileset》

E classpath
屬性 描述 是否必須
path 路徑 N
location 獨立檔案或目錄 N
《classpath path="bin"/》
《classpath》
《pathelement path="${java.class.path}"/》
《pathelement location="${junit_path}"/》
《pathelement location="${log4j_path}"/》
《/classpath》
F refid
ant的元素都可以設定一個ID,你可以通過這個ID來引用這個元素
設定classpath
《classpath id="common_path"》
《pathelement path="${java.class.path}"/》
《pathelement location="${junit_path}"/》
《pathelement location="${log4j_path}"/》
《/classpath》
引用:
《javac srcdir="src" destdir="bin"》
《classpath refid="common_path"/》
《/javac》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.