Ant 工程構(gòu)建

Ant 開發(fā)Ant的構(gòu)建文件當(dāng)開始一個(gè)新的項(xiàng)目時(shí),首先應(yīng)該編寫Ant構(gòu)建文件。構(gòu)建文件定義了構(gòu)建過程抢肛,并被團(tuán)隊(duì)開發(fā)中每個(gè)人使用。Ant構(gòu)建文件默認(rèn)命名為build.xml碳柱,也可以取其他的名字捡絮。只不過在運(yùn)行的時(shí)候把這個(gè)命名當(dāng)作參數(shù)傳給Ant。構(gòu)建文件可以放在任何的位置士聪。一般做法是放在項(xiàng)目頂層目錄中锦援,這樣可以保持項(xiàng)目的簡潔和清晰。下面是一個(gè)典型的項(xiàng)目層次結(jié)構(gòu)剥悟。

(1) src存放文件灵寺。

(2) class存放編譯后的文件。

(3) lib存放第三方JAR包区岗。

(4) dist存放打包略板,發(fā)布以后的代碼。

Ant構(gòu)建文件是XML文件慈缔。每個(gè)構(gòu)建文件定義一個(gè)唯一的項(xiàng)目(Project元素)叮称。每個(gè)項(xiàng)目下可以定義很多目標(biāo)(target元素),這些目標(biāo)之間可以有依賴關(guān)系藐鹤。當(dāng)執(zhí)行這類目標(biāo)時(shí)瓤檐,需要執(zhí)行他們所依賴的目標(biāo)。每個(gè)目標(biāo)中可以定義多個(gè)任務(wù)娱节,目標(biāo)中還定義了所要執(zhí)行的任務(wù)序列挠蛉。Ant在構(gòu)建目標(biāo)時(shí)必須調(diào)用所定義的任務(wù)。任務(wù)定義了Ant實(shí)際執(zhí)行的命令肄满。Ant中的任務(wù)可以為3類谴古。

(1) 核心任務(wù)。核心任務(wù)是Ant自帶的任務(wù)稠歉。

(2) 可選任務(wù)掰担。可選任務(wù)實(shí)來自第三方的任務(wù)怒炸,因此需要一個(gè)附加的JAR文件带饱。

(3) 用戶自定義的任務(wù)。用戶自定義的任務(wù)實(shí)用戶自己開發(fā)的任務(wù)阅羹。


1<project>.標(biāo)簽

每個(gè)構(gòu)建文件對(duì)應(yīng)一個(gè)項(xiàng)目纠炮。標(biāo)簽時(shí)構(gòu)建文件的根標(biāo)簽月趟。它可以有多個(gè)內(nèi)在屬性,就如代碼中所示恢口,其各個(gè)屬性的含義分別如下孝宗。

(1) default表示默認(rèn)的運(yùn)行目標(biāo),這個(gè)屬性是必須的耕肩。

(2) basedir表示項(xiàng)目的基準(zhǔn)目錄因妇。

(3) name表示項(xiàng)目名。

(4) description表示項(xiàng)目的描述猿诸。

每個(gè)構(gòu)建文件都對(duì)應(yīng)于一個(gè)項(xiàng)目婚被,但是大型項(xiàng)目經(jīng)常包含大量的子項(xiàng)目,每一個(gè)子項(xiàng)目都可以有自己的構(gòu)建文件梳虽。

2. <target>標(biāo)簽

一個(gè)項(xiàng)目標(biāo)簽下可以有一個(gè)或多個(gè)target標(biāo)簽址芯。一個(gè)target標(biāo)簽可以依賴其他的target標(biāo)簽。例如窜觉,有一個(gè)target用于編譯程序谷炸,另一個(gè)target用于聲稱可執(zhí)行文件。在生成可執(zhí)行文件之前必須先編譯該文件禀挫,因策可執(zhí)行文件的target依賴于編譯程序的target旬陡。Target的所有屬性如下。

(1) name表示標(biāo)明语婴,這個(gè)屬性是必須的描孟。

(2) depends表示依賴的目標(biāo)。

(3) if表示僅當(dāng)屬性設(shè)置時(shí)才執(zhí)行砰左。

(4) unless表示當(dāng)屬性沒有設(shè)置時(shí)才執(zhí)行匿醒。

(5) description表示項(xiàng)目的描述。

Ant的depends屬性指定了target的執(zhí)行順序缠导。Ant會(huì)依照depends屬性中target出現(xiàn)順序依次執(zhí)行每個(gè)target青抛。在執(zhí)行之前,首先需要執(zhí)行它所依賴的target酬核。程序中的名為run的target的depends屬性compile,而名為compile的target的depends屬性是prepare适室,所以這幾個(gè)target執(zhí)行的順序是prepare->compile->run嫡意。一個(gè)target只能被執(zhí)行一次,即使有多個(gè)target依賴于它捣辆。如果沒有if或unless屬性蔬螟,target總會(huì)被執(zhí)行。

3.<mkdir>標(biāo)簽

該標(biāo)簽用于創(chuàng)建一個(gè)目錄汽畴,它有一個(gè)屬性dir用來指定所創(chuàng)建的目錄名旧巾,其代碼如下:通過以上代碼就創(chuàng)建了一個(gè)目錄耸序,這個(gè)目錄已經(jīng)被前面的property標(biāo)簽所指定。

4.<jar>標(biāo)簽

該標(biāo)簽用來生成一個(gè)JAR文件鲁猩,其屬性如下坎怪。

(1) destfile表示JAR文件名。

(2) basedir表示被歸檔的文件名廓握。

(3) includes表示別歸檔的文件模式搅窿。

(4) exchudes表示被排除的文件模式。

5.<javac>標(biāo)簽

該標(biāo)簽用于編譯一個(gè)或一組java文件隙券,其屬性如下:

(1).srcdir表示源程序的目錄男应。

(2).destdir表示class文件的輸出目錄。

(3).include表示被編譯的文件的模式娱仔。

(4).excludes表示被排除的文件的模式沐飘。

(5).classpath表示所使用的類路徑。

(6).debug表示包含的調(diào)試信息牲迫。

(7).optimize表示是否使用優(yōu)化耐朴。

(8).verbose 表示提供詳細(xì)的輸出信息。

(9).fileonerror表示當(dāng)碰到錯(cuò)誤就自動(dòng)停止恩溅。

6.<java>?標(biāo)簽

該標(biāo)簽用來執(zhí)行編譯生成的.class文件隔箍,其屬性如下。

(1).classname 表示將執(zhí)行的類名脚乡。

(2).jar表示包含該類的JAR文件名蜒滩。

(3).classpath所表示用到的類路徑。

(4).fork表示在一個(gè)新的虛擬機(jī)中運(yùn)行該類奶稠。

(5).failonerror表示當(dāng)出現(xiàn)錯(cuò)誤時(shí)自動(dòng)停止俯艰。

(6).output 表示輸出文件。

(7).append表示追加或者覆蓋默認(rèn)文件锌订。

7. <delete>標(biāo)簽

該標(biāo)簽用于刪除一個(gè)文件或一組文件竹握,去屬性如下:

(1).file表示要?jiǎng)h除的文件。

(2).dir表示要?jiǎng)h除的目錄辆飘。

(3).includeEmptyDirs 表示指定是否要?jiǎng)h除空目錄啦辐,默認(rèn)值是刪除。

(4).failonerror 表示指定當(dāng)碰到錯(cuò)誤是否停止蜈项,默認(rèn)值是自動(dòng)停止芹关。

(5).verbose表示指定是否列出所刪除的文件,默認(rèn)值為不列出紧卒。

8.<copy>標(biāo)簽

該標(biāo)簽用于文件或文件集的拷貝侥衬,其屬性如下。

(1).file 表示源文件。

(2).tofile 表示目標(biāo)文件轴总。

(3).todir 表示目標(biāo)目錄直颅。

(4).overwrite 表示指定是否覆蓋目標(biāo)文件,默認(rèn)值是不覆蓋怀樟。

(5).includeEmptyDirs 表示制定是否拷貝空目錄功偿,默認(rèn)值為拷貝。

(6).failonerror 表示指定如目標(biāo)沒有發(fā)現(xiàn)是否自動(dòng)停止漂佩,默認(rèn)值是停止脖含。

(7).verbose 表示制定是否顯示詳細(xì)信息,默認(rèn)值不顯示投蝉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末养葵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瘩缆,更是在濱河造成了極大的恐慌关拒,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庸娱,死亡現(xiàn)場離奇詭異着绊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)熟尉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門归露,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斤儿,你說我怎么就攤上這事剧包。” “怎么了往果?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵疆液,是天一觀的道長。 經(jīng)常有香客問我陕贮,道長堕油,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任肮之,我火速辦了婚禮掉缺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘戈擒。我一直安慰自己眶明,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布峦甩。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凯傲。 梳的紋絲不亂的頭發(fā)上犬辰,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音冰单,去河邊找鬼幌缝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诫欠,可吹牛的內(nèi)容都是我干的涵卵。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼荒叼,長吁一口氣:“原來是場噩夢啊……” “哼轿偎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起被廓,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤坏晦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后嫁乘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昆婿,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年蜓斧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仓蛆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挎春,死狀恐怖看疙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搂蜓,我是刑警寧澤狼荞,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站帮碰,受9級(jí)特大地震影響相味,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜殉挽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一丰涉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斯碌,春花似錦一死、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽承耿。三九已至,卻和暖如春伪煤,著一層夾襖步出監(jiān)牢的瞬間加袋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工抱既, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留职烧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓防泵,卻偏偏與公主長得像蚀之,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捷泞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理足删,服務(wù)發(fā)現(xiàn),斷路器肚邢,智...
    卡卡羅2017閱讀 134,715評(píng)論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,322評(píng)論 25 707
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,865評(píng)論 6 342
  • Ant構(gòu)建文件是XML文件壹堰。每個(gè)構(gòu)建文件定義一個(gè)唯一的項(xiàng)目(Project元素)。每個(gè)項(xiàng)目下可以定義很多目標(biāo)(ta...
    by小杰閱讀 996評(píng)論 0 0
  • 下載簡書讓我完成作者夢骡湖,誰知腦袋一片空白贱纠,什么也寫不出來,很早就想記錄孩子的點(diǎn)點(diǎn)滴滴响蕴,卻不知從何寫起谆焊,大的已經(jīng)7歲...
    淑蘭天地閱讀 138評(píng)論 0 1