锘??xml version="1.0" encoding="utf-8" standalone="yes"?>自拍偷自拍亚洲精品播放,亚洲乱码国产一区网址,亚洲天堂在线播放http://www.tkk7.com/junky/category/15061.htmlzh-cnTue, 27 Feb 2007 11:50:46 GMTTue, 27 Feb 2007 11:50:46 GMT60ANT 鍩烘湰浣跨敤鏁欑▼http://www.tkk7.com/junky/archive/2006/10/17/75662.htmljunkyjunkyTue, 17 Oct 2006 07:50:00 GMThttp://www.tkk7.com/junky/archive/2006/10/17/75662.htmlhttp://www.tkk7.com/junky/comments/75662.htmlhttp://www.tkk7.com/junky/archive/2006/10/17/75662.html#Feedback0http://www.tkk7.com/junky/comments/commentRss/75662.htmlhttp://www.tkk7.com/junky/services/trackbacks/75662.html1 Ant鏄粈涔堬紵
Apache Ant 鏄竴涓熀浜?Java鐨勭敓鎴愬伐鍏楓?br />綆鍗曠偣璇村氨鏄?java涓殑MAKEFILE,瀹冩牴鎹産uild.xml鐨勫唴瀹硅嚜鍔ㄧ紪璇慾ava
2 涓嬭澆銆佸畨瑁匒nt
瀹夎Ant
涓嬭澆.zip鏂囦歡錛岃В鍘嬬緝鍒癱:\ant1.3(鍚庨潰寮曠敤涓?ANT_HOME%)

2.1 鍦ㄤ綘榪愯Ant涔嬪墠闇瑕佸仛涓浜涢厤緗伐浣溿?br />? 灝哹in鐩綍鍔犲叆PATH鐜鍙橀噺銆?
? 璁懼畾ANT_HOME鐜鍙橀噺錛屾寚鍚戜綘瀹夎Ant鐨勭洰褰曘傚湪涓浜汷S涓婏紝Ant鐨勮剼鏈彲浠ョ寽嫻婣NT_HOME錛圲nix鍜學indos NT/2000錛夛紞浣嗘渶濂戒笉瑕佷緷璧栬繖涓鐗規с?
? 鍙夊湴錛岃瀹欽AVA_HOME鐜鍙橀噺錛堝弬鑰冧笅闈㈢殑楂樼駭灝忚妭錛夛紝璇ュ彉閲忓簲璇ユ寚鍚戜綘瀹夎JDK鐨勭洰褰曘?br />娉ㄦ剰錛氫笉瑕佸皢Ant鐨刟nt.jar鏂囦歡鏀懼埌JDK/JRE鐨刲ib/ext鐩綍涓嬨侫nt鏄釜搴旂敤紼嬪簭錛岃宭ib/ext鐩綍鏄負JDK鎵╁睍浣跨敤鐨勶紙濡侸CE錛孞SSE鎵╁睍錛夈傝屼笖閫氳繃鎵╁睍瑁呭叆鐨勭被浼氭湁瀹夊叏鏂歸潰鐨勯檺鍒躲?br />2.2 榪愯Ant

榪愯Ant闈炲父綆鍗曪紝褰撲綘姝g‘鍦板畨瑁匒nt鍚庯紝鍙杈撳叆ant灝卞彲浠ヤ簡銆?/p>

涓鑸互:ant 鎵撳ご 鍔犱竴涓猙uild.xml涓璽arget 涓殑name灞炴х殑鍊?..涓嬩竴綃囨垜璁蹭粙緇峛uild.xml鍚勪釜浠誨姟鐨勪綔鐢?/p>

? 娌℃湁鎸囧畾浠諱綍鍙傛暟鏃訛紝Ant浼氬湪褰撳墠鐩綍涓嬫煡璇uild.xml鏂囦歡銆傚鏋滄壘鍒頒簡灝辯敤璇ユ枃浠朵綔涓篵uildfile銆傚鏋滀綘鐢?-find 閫夐」銆侫nt灝變細鍦ㄤ笂綰х洰褰曚腑瀵繪壘buildfile錛岀洿鑷沖埌杈炬枃浠剁郴緇熺殑鏍廣傝鎯寵Ant浣跨敤鍏朵粬鐨刡uildfile錛屽彲浠ョ敤鍙傛暟 -buildfile file錛岃繖閲宖ile鎸囧畾浜嗕綘鎯充嬌鐢ㄧ殑buildfile銆?/p>

? 鍙互鎸囧畾鎵ц涓涓垨澶氫釜target銆傚綋鐪佺暐target鏃訛紝Ant浣跨敤鏍囩<project>鐨刣efault灞炴ф墍鎸囧畾鐨則arget銆?/p>


鍛戒護琛岄夐」鎬葷粨錛?br />ant [options] [target [target2 [target3] ...]]
Options:
-help print this message
-projecthelp print project help information
-version print the version information and exit
-quiet be extra quiet
-verbose be extra verbose
-debug print debugging information
-emacs produce logging information without adornments
-logfile file use given file for log output
-logger classname the class that is to perform logging
-listener classname add an instance of class as a project listener
-buildfile file use specified buildfile
-find file search for buildfile towards the root of the filesystem and use the first one found
-Dproperty=value set property to value
渚嬪瓙
ant
浣跨敤褰撳墠鐩綍涓嬬殑build.xml榪愯Ant錛屾墽琛岀己鐪佺殑target銆?br />ant -buildfile test.xml
浣跨敤褰撳墠鐩綍涓嬬殑test.xml榪愯Ant錛屾墽琛岀己鐪佺殑target銆?br />ant -buildfile test.xml dist
浣跨敤褰撳墠鐩綍涓嬬殑test.xml榪愯Ant錛屾墽琛屼竴涓彨鍋歞ist鐨則arget銆?br />ant -buildfile test.xml -Dbuild=build/classes dist
浣跨敤褰撳墠鐩綍涓嬬殑test.xml榪愯Ant錛屾墽琛屼竴涓彨鍋歞ist鐨則arget錛屽茍璁懼畾build灞炴х殑鍊間負build/classes銆?/p>

3 緙栧啓build.xml

Ant鐨刡uildfile鏄敤XML鍐欑殑銆傛瘡涓猙uildfile鍚湁涓涓猵roject銆?/p>

buildfile涓瘡涓猼ask鍏冪礌鍙互鏈変竴涓猧d灞炴э紝鍙互鐢ㄨ繖涓猧d鍊煎紩鐢ㄦ寚瀹氱殑浠誨姟銆傝繖涓煎繀欏繪槸鍞竴鐨勩傦紙璇︽儏璇峰弬鑰冧笅闈㈢殑Task灝忚妭錛?/p>

3.1 Projects

project鏈変笅闈㈢殑灞炴э細
Attribute Description Required
name 欏圭洰鍚嶇О. No
default 褰撴病鏈夋寚瀹歵arget鏃朵嬌鐢ㄧ殑緙虹渷target Yes
basedir 鐢ㄤ簬璁$畻鎵鏈夊叾浠栬礬寰勭殑鍩鴻礬寰勩傝灞炴у彲浠ヨbasedir property瑕嗙洊銆傚綋瑕嗙洊鏃訛紝璇ュ睘鎬ц蹇界暐銆傚鏋滃睘鎬у拰basedir property閮芥病鏈夎瀹氾紝灝變嬌鐢╞uildfile鏂囦歡鐨勭埗鐩綍銆?No
欏圭洰鐨勬弿榪頒互涓涓《綰х殑<description>鍏冪礌鐨勫艦寮忓嚭鐜幫紙鍙傜湅description灝忚妭錛夈?/p>

涓涓」鐩彲浠ュ畾涔変竴涓垨澶氫釜target銆備竴涓猼arget鏄竴緋誨垪浣犳兂瑕佹墽琛岀殑銆傛墽琛孉nt鏃訛紝浣犲彲浠ラ夋嫨鎵ц閭d釜target銆傚綋娌℃湁緇欏畾target鏃訛紝浣跨敤project鐨刣efault灞炴ф墍紜畾鐨則arget銆?/p>

3.2 Targets

涓涓猼arget鍙互渚濊禆浜庡叾浠栫殑target銆備緥濡傦紝浣犲彲鑳戒細鏈変竴涓猼arget鐢ㄤ簬緙栬瘧紼嬪簭錛屼竴涓猼arget鐢ㄤ簬鐢熸垚鍙墽琛屾枃浠躲備綘鍦ㄧ敓鎴愬彲鎵ц鏂囦歡涔嬪墠蹇呴』鍏堢紪璇戦氳繃錛屾墍浠ョ敓鎴愬彲鎵ц鏂囦歡鐨則arget渚濊禆浜庣紪璇憈arget銆侫nt浼氬鐞嗚繖縐嶄緷璧栧叧緋匯?/p>

鐒惰岋紝搴斿綋娉ㄦ剰鍒幫紝Ant鐨刣epends灞炴у彧鎸囧畾浜唗arget搴旇琚墽琛岀殑欏哄簭錛嶅鏋滆渚濊禆鐨則arget鏃犳硶榪愯錛岃繖縐峝epends瀵逛簬鎸囧畾浜嗕緷璧栧叧緋葷殑target灝辨病鏈夊獎鍝嶃?/p>

Ant浼氫緷鐓epends灞炴т腑target鍑虹幇鐨勯『搴忥紙浠庡乏鍒板彸錛変緷嬈℃墽琛屾瘡涓猼arget銆傜劧鑰岋紝瑕佽浣忕殑鏄彧瑕佹煇涓猼arget渚濊禆浜庝竴涓猼arget錛屽悗鑰呭氨浼氳鍏堟墽琛屻?br /><target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="C,B,A"/>
鍋囧畾鎴戜滑瑕佹墽琛宼arget D銆備粠瀹冪殑渚濊禆灞炴ф潵鐪嬶紝浣犲彲鑳借涓哄厛鎵цC錛岀劧鍚嶣錛屾渶鍚嶢琚墽琛屻傞敊浜嗭紝C渚濊禆浜嶣錛孊渚濊禆浜嶢錛屾墍浠ュ厛鎵цA錛岀劧鍚嶣錛岀劧鍚嶤錛屾渶鍚嶥琚墽琛屻?/p>

涓涓猼arget鍙兘琚墽琛屼竴嬈★紝鍗蟲椂鏈夊涓猼arget渚濊禆浜庡畠錛堢湅涓婇潰鐨勪緥瀛愶級銆?/p>

濡傛灉錛堟垨濡傛灉涓嶏級鏌愪簺灞炴ц璁懼畾錛屾墠鎵ц鏌愪釜target銆傝繖鏍鳳紝鍏佽鏍規嵁緋葷粺鐨勭姸鎬侊紙java version, OS, 鍛戒護琛屽睘鎬у畾涔夌瓑絳夛級鏉ユ洿濂藉湴鎺у埗build鐨勮繃紼嬨傝鎯寵涓涓猼arget榪欐牱鍋氾紝浣犲氨搴旇鍦╰arget鍏冪礌涓紝鍔犲叆if錛堟垨unless錛夊睘鎬э紝甯︿笂target鍥犺鏈夋墍鍒ゆ柇鐨勫睘鎬с備緥濡傦細
<target name="build-module-A" if="module-A-present"/>
<target name="build-own-fake-module-A" unless="module-A-present"/>
濡傛灉娌℃湁if鎴杣nless灞炴э紝target鎬諱細琚墽琛屻?/p>

鍙夌殑description灞炴у彲鐢ㄦ潵鎻愪緵鍏充簬target鐨勪竴琛屾弿榪幫紝榪欎簺鎻忚堪鍙敱-projecthelp鍛戒護琛岄夐」杈撳嚭銆?/p>

灝嗕綘鐨則stamp task鍦ㄤ竴涓墍璋撶殑鍒濆鍖杢arget鏄緢濂界殑鍋氭硶錛屽叾浠栫殑target渚濊禆榪欎釜鍒濆鍖杢arget銆傝紜繚鍒濆鍖杢arget鏄嚭鐜板湪鍏朵粬target渚濊禆琛ㄤ腑鐨勭涓涓猼arget銆傚湪鏈墜鍐屼腑澶у鏁扮殑鍒濆鍖杢arget鐨勫悕瀛楁槸"init"銆?/p>

target鏈変笅闈㈢殑灞炴э細
Attribute Description Required
name target鐨勫悕瀛?Yes
depends 鐢ㄩ楀彿鍒嗛殧鐨則arget鐨勫悕瀛楀垪琛紝涔熷氨鏄緷璧栬〃銆?No
if 鎵цtarget鎵闇瑕佽瀹氱殑灞炴у悕銆?No
unless 鎵цtarget闇瑕佹竻闄よ瀹氱殑灞炴у悕銆?No
description 鍏充簬target鍔熻兘鐨勭畝鐭弿榪般?No

3.3 Tasks

涓涓猼ask鏄竴孌靛彲鎵ц鐨勪唬鐮併?/p>

涓涓猼ask鍙互鏈夊涓睘鎬э紙濡傛灉浣犳効鎰忕殑璇濓紝鍙互灝嗗叾縐頒箣涓哄彉閲忥級銆傚睘鎬у彧鍙兘鍖呭惈瀵筽roperty鐨勫紩鐢ㄣ傝繖浜涘紩鐢ㄤ細鍦╰ask鎵ц鍓嶈瑙f瀽銆?/p>

涓嬮潰鏄疶ask鐨勪竴鑸瀯閫犲艦寮忥細
<name attribute1="value1" attribute2="value2" ... />
榪欓噷name鏄痶ask鐨勫悕瀛楋紝attributeN鏄睘鎬у悕錛寁alueN鏄睘鎬у箋?/p>

鏈変竴濂楀唴緗殑錛坆uilt-in錛塼ask錛屼互鍙婁竴浜涘彲閫塼ask錛屼絾浣犱篃鍙互緙栧啓鑷繁鐨則ask銆?/p>

鎵鏈夌殑task閮芥湁涓涓猼ask鍚嶅瓧灞炴с侫nt鐢ㄥ睘鎬у兼潵浜х敓鏃ュ織淇℃伅銆?/p>

鍙互緇檛ask璧嬩竴涓猧d灞炴э細
<taskname id="taskID" ... />
榪欓噷taskname鏄痶ask鐨勫悕瀛楋紝鑰宼askID鏄繖涓猼ask鐨勫敮涓鏍囪瘑絎︺傞氳繃榪欎釜鏍囪瘑絎︼紝浣犲彲浠ュ湪鑴氭湰涓紩鐢ㄧ浉搴旂殑task銆備緥濡傦紝鍦ㄨ剼鏈腑浣犲彲浠ヨ繖鏍鳳細
<script ... >
task1.setFoo("bar");
</script>
璁懼畾鏌愪釜task瀹炰緥鐨刦oo灞炴с傚湪鍙︿竴涓猼ask涓紙鐢╦ava緙栧啓錛夛紝浣犲彲浠ュ埄鐢ㄤ笅闈㈢殑璇彞瀛樺彇鐩稿簲鐨勫疄渚嬨?br />project.getReference("task1").
娉ㄦ剰1錛氬鏋渢ask1榪樻病鏈夎繍琛岋紝灝變笉浼氳鐢熸晥錛堜緥濡傦細涓嶈瀹氬睘鎬э級錛屽鏋滀綘鍦ㄩ殢鍚庨厤緗畠錛屼綘鎵浣滅殑涓鍒囬兘浼氳瑕嗙洊銆?/p>

娉ㄦ剰2錛氭湭鏉ョ殑Ant鐗堟湰鍙兘涓嶄細鍏煎榪欓噷鎵鎻愮殑灞炴э紝鍥犱負寰堟湁鍙兘鏍規湰娌℃湁task瀹炰緥錛屽彧鏈塸roxies銆?/p>

3.4 Properties

涓涓猵roject鍙互鏈夊緢澶氱殑properties銆傚彲浠ュ湪buildfile涓敤property task鏉ヨ瀹氾紝鎴栧湪Ant涔嬪璁懼畾銆備竴涓猵roperty鏈変竴涓悕瀛楀拰涓涓箋俻roperty鍙敤浜巘ask鐨勫睘鎬у箋傝繖鏄氳繃灝嗗睘鎬у悕鏀懼湪"${"鍜?}"涔嬮棿騫舵斁鍦ㄥ睘鎬у肩殑浣嶇疆鏉ュ疄鐜扮殑銆備緥濡傚鏋滄湁涓涓猵roperty builddir鐨勫兼槸"build"錛岃繖涓猵roperty灝卞彲鐢ㄤ簬灞炴у鹼細${builddir}/classes銆傝繖涓煎氨鍙瑙f瀽涓篵uild/classes銆?/p>

鍐呯疆灞炴?/p>

濡傛灉浣犱嬌鐢ㄤ簡<property> task 瀹氫箟浜嗘墍鏈夌殑緋葷粺灞炴э紝Ant鍏佽浣犱嬌鐢ㄨ繖浜涘睘鎬с備緥濡傦紝${os.name}瀵瑰簲鎿嶄綔緋葷粺鐨勫悕瀛椼?/p>

瑕佹兂寰楀埌緋葷粺灞炴х殑鍒楄〃鍙弬鑰僼he Javadoc of System.getProperties銆?/p>

闄や簡Java鐨勭郴緇熷睘鎬э紝Ant榪樺畾涔変簡涓浜涜嚜宸辯殑鍐呯疆灞炴э細
basedir project鍩虹洰褰曠殑緇濆璺緞 (涓?lt;project>鐨刡asedir灞炴т竴鏍?銆?br />ant.file buildfile鐨勭粷瀵硅礬寰勩?br />ant.version Ant鐨勭増鏈?br />ant.project.name 褰撳墠鎵ц鐨刾roject鐨勫悕瀛楋紱鐢?lt;project>鐨刵ame灞炴ц瀹?
ant.java.version Ant媯嫻嬪埌鐨凧VM鐨勭増鏈紱 鐩墠鐨勫兼湁"1.1", "1.2", "1.3" and "1.4".

渚嬪瓙
<project name="MyProject" default="dist" basedir=".">

<!-- set global properties for this build -->
<property name="src" value="."/>
<property name="build" value="build"/>
<property name="dist" value="dist"/>

<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
</target>

<target name="compile" depends="init">
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}"/>
</target>

<target name="dist" depends="compile">
<!-- Create the distribution directory -->
<mkdir dir="${dist}/lib"/>
<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
</target>

<target name="clean">
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>

</project>
3.5 Path-like Structures
浣犲彲浠ョ敤":"鍜?;"浣滀負鍒嗛殧絎︼紝鎸囧畾綾諱技PATH鍜孋LASSPATH鐨勫紩鐢ㄣ侫nt浼氭妸鍒嗛殧絎﹁漿鎹負褰撳墠緋葷粺鎵鐢ㄧ殑鍒嗛殧絎︺?/p>

褰撻渶瑕佹寚瀹氱被浼艱礬寰勭殑鍊兼椂錛屽彲浠ヤ嬌鐢ㄥ祵濂楀厓绱犮備竴鑸殑褰㈠紡鏄?br /><classpath>
<pathelement path="${classpath}"/>
<pathelement location="lib/helper.jar"/>
</classpath>
location灞炴ф寚瀹氫簡鐩稿浜巔roject鍩虹洰褰曠殑涓涓枃浠跺拰鐩綍錛岃宲ath灞炴ф帴鍙楅楀彿鎴栧垎鍙峰垎闅旂殑涓涓綅緗垪琛ㄣ俻ath灞炴т竴鑸敤浣滈瀹氫箟鐨勮礬寰勶紞錛嶅叾浠栨儏鍐典笅錛屽簲璇ョ敤澶氫釜location灞炴с?/p>

涓虹畝媧佽搗瑙侊紝classpath鏍囩鏀寔鑷繁鐨刾ath鍜宭ocation灞炴с傛墍浠ワ細
<classpath>
<pathelement path="${classpath}"/>
</classpath>
鍙互琚畝鍐欎綔錛?br /><classpath path="${classpath}"/>
涔熷彲閫氳繃<fileset>鍏冪礌鎸囧畾璺緞銆傛瀯鎴愪竴涓猣ileset鐨勫涓枃浠跺姞鍏ath-like structure鐨勯『搴忔槸鏈畾鐨勩?br /><classpath>
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="classes"/>
</classpath>
涓婇潰鐨勪緥瀛愭瀯閫犱簡涓涓礬寰勫煎寘鎷細${classpath}鐨勮礬寰勶紝璺熺潃lib鐩綍涓嬬殑鎵鏈塲ar鏂囦歡錛屾帴鐫鏄痗lasses鐩綍銆?/p>

濡傛灉浣犳兂鍦ㄥ涓猼ask涓嬌鐢ㄧ浉鍚岀殑path-like structure錛屼綘鍙互鐢?lt;path>鍏冪礌瀹氫箟浠栦滑錛堜笌target鍚岀駭錛夛紝鐒跺悗閫氳繃id灞炴у紩鐢紞錛嶅弬鑰僐eferencs渚嬪瓙銆?/p>

path-like structure鍙兘鍖呮嫭瀵瑰彟涓涓猵ath-like structurede鐨勫紩鐢紙閫氳繃宓屽<path>鍏冪礌錛夛細
<path id="base.path">
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="classes"/>
</path>
<path id="tests.path">
<path refid="base.path"/>
<pathelement location="testclasses"/>
</path>
鍓嶉潰鎵鎻愮殑鍏充簬<classpath>鐨勭畝媧佸啓娉曞浜?lt;path>涔熸槸鏈夋晥鐨勶紝濡傦細
<path id="tests.path">
<path refid="base.path"/>
<pathelement location="testclasses"/>
</path>
鍙啓鎴愶細
<path id="base.path" path="${classpath}"/>
鍛戒護琛屽彉閲?/p>

鏈変簺task鍙帴鍙楀弬鏁幫紝騫跺皢鍏朵紶閫掔粰鍙︿竴涓繘紼嬨備負浜嗚兘鍦ㄥ彉閲忎腑鍖呭惈絀烘牸瀛楃錛屽彲浣跨敤宓屽鐨刟rg鍏冪礌銆?br />Attribute Description Required
value 涓涓懡浠よ鍙橀噺錛涘彲鍖呭惈絀烘牸瀛楃銆?鍙兘鐢ㄤ竴涓?br />line 絀烘牸鍒嗛殧鐨勫懡浠よ鍙橀噺鍒楄〃銆?
file 浣滀負鍛戒護琛屽彉閲忕殑鏂囦歡鍚嶏紱浼氳鏂囦歡鐨勭粷瀵瑰悕鏇夸唬銆?
path 涓涓綔涓哄崟涓懡浠よ鍙橀噺鐨刾ath-like鐨勫瓧絎︿覆錛涙垨浣滀負鍒嗛殧絎︼紝Ant浼氬皢鍏惰漿鍙樹負鐗瑰畾騫沖彴鐨勫垎闅旂銆?

渚嬪瓙
<arg value="-l -a"/>
鏄竴涓惈鏈夌┖鏍肩殑鍗曚釜鐨勫懡浠よ鍙橀噺銆?br /><arg line="-l -a"/>
鏄袱涓┖鏍煎垎闅旂殑鍛戒護琛屽彉閲忋?br /><arg path="/dir;/dir2:\dir3"/>
鏄竴涓懡浠よ鍙橀噺錛屽叾鍊煎湪DOS緋葷粺涓婁負\dir;\dir2;\dir3錛涘湪Unix緋葷粺涓婁負/dir:/dir2:/dir3 銆?/p>

References

buildfile鍏冪礌鐨刬d灞炴у彲鐢ㄦ潵寮曠敤榪欎簺鍏冪礌銆傚鏋滀綘闇瑕佷竴閬嶉亶鐨勫鍒剁浉鍚岀殑XML浠g爜鍧楋紝榪欎竴灞炴у氨寰堟湁鐢紞錛嶅澶氭浣跨敤<classpath>緇撴瀯銆?/p>

涓嬮潰鐨勪緥瀛愶細
<project ... >
<target ... >
<rmic ...>
<classpath>
<pathelement location="lib/"/>
<pathelement path="${java.class.path}/"/>
<pathelement path="${additional.path}"/>
</classpath>
</rmic>
</target>
<target ... >
<javac ...>
<classpath>
<pathelement location="lib/"/>
<pathelement path="${java.class.path}/"/>
<pathelement path="${additional.path}"/>
</classpath>
</javac>
</target>
</project>
鍙互鍐欐垚濡備笅褰㈠紡錛?br /><project ... >
<path id="project.class.path">
<pathelement location="lib/"/>
<pathelement path="${java.class.path}/"/>
<pathelement path="${additional.path}"/>
</path>
<target ... >
<rmic ...>
<classpath refid="project.class.path"/>
</rmic>
</target>
<target ... >
<javac ...>
<classpath refid="project.class.path"/>
</javac>
</target>
</project>
鎵鏈変嬌鐢≒atternSets, FileSets 鎴?path-like structures宓屽鍏冪礌鐨則ask涔熸帴鍙楄繖縐嶇被鍨嬬殑寮曠敤銆?/p>

4.1 File錛圖irectory錛夌被
4.1.1 Mkdir
? 鍒涘緩涓涓洰褰曪紝濡傛灉浠栫殑鐖剁洰褰曚笉瀛樺湪錛屼篃浼氳鍚屾椂鍒涘緩銆?br />? 渚嬪瓙錛?br /><mkdir dir="build/classes"/>
? 璇存槑錛?濡傛灉build涓嶅瓨鍦紝涔熶細琚悓鏃跺垱寤?br />4.1.2 Copy
? 鎷瘋礉涓涓紙緇勶級鏂囦歡銆佺洰褰?br />? 渚嬪瓙錛?br />1. 鎷瘋礉鍗曚釜鐨勬枃浠訛細
<copy file="myfile.txt" tofile="mycopy.txt"/>
2. 鎷瘋礉鍗曚釜鐨勬枃浠跺埌鎸囧畾鐩綍涓?br /><copy file="myfile.txt" todir="../some/other/dir"/>
3. 鎷瘋礉涓涓洰褰曞埌鍙﹀涓涓洰褰曚笅
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
4. 鎷瘋礉涓鎵規枃浠跺埌鎸囧畾鐩綍涓?br /><copy todir="../dest/dir">
<fileset dir="src_dir">
<exclude name="**/*.java"/>
</fileset>
</copy>

<copy todir="../dest/dir">
<fileset dir="src_dir" excludes="**/*.java"/>
</copy>
5. 鎷瘋礉涓鎵規枃浠跺埌鎸囧畾鐩綍涓嬶紝灝嗘枃浠跺悕鍚庡鍔犮侭ak鍚庣紑
<copy todir="../backup/dir">
<fileset dir="src_dir"/>
<mapper type="glob" from="*" to="*.bak"/>
</copy>
6. 鎷瘋礉涓緇勬枃浠跺埌鎸囧畾鐩綍涓嬶紝鏇挎崲鍏朵腑鐨凘鏍囩@鍐呭
<copy todir="../backup/dir">
<fileset dir="src_dir"/>
<filterset>
<filter token="TITLE" value="Foo Bar"/>
</filterset>
</copy>
4.1.3 Delete
? 鍒犻櫎涓涓紙緇勶級鏂囦歡鎴栬呯洰褰?br />? 渚嬪瓙
1. 鍒犻櫎涓涓枃浠?br /><delete file="/lib/ant.jar"/>
2. 鍒犻櫎鎸囧畾鐩綍鍙婂叾瀛愮洰褰?br /><delete dir="lib"/>
3. 鍒犻櫎鎸囧畾鐨勪竴緇勬枃浠?br /><delete>
<fileset dir="." includes="**/*.bak"/>
</delete>
4. 鍒犻櫎鎸囧畾鐩綍鍙婂叾瀛愮洰褰曪紝鍖呮嫭浠栬嚜宸?br /><delete includeEmptyDirs="true">
<fileset dir="build"/>
</delete>
4.1.4 Move
? 縐誨姩鎴栭噸鍛藉悕涓涓紙緇勶級鏂囦歡銆佺洰褰?br />? 渚嬪瓙錛?br />1. 縐誨姩鎴栭噸鍛藉悕涓涓枃浠?br /><move file="file.orig" tofile="file.moved"/>
2. 縐誨姩鎴栭噸鍛藉悕涓涓枃浠跺埌鍙︿竴涓枃浠跺す涓嬮潰
<move file="file.orig" todir="dir/to/move/to"/>
3. 灝嗕竴涓洰褰曠Щ鍒板彟澶栦竴涓洰褰曚笅
<move todir="new/dir/to/move/to">
<fileset dir="src/dir"/>
</move>
4. 灝嗕竴緇勬枃浠剁Щ鍔ㄥ埌鍙﹀鐨勭洰褰曚笅
<move todir="some/new/dir">
<fileset dir="my/src/dir">
<include name="**/*.jar"/>
<exclude name="**/ant.jar"/>
</fileset>
</move>
5. 縐誨姩鏂囦歡榪囩▼涓鍔犮侭ak鍚庣紑
<move todir="my/src/dir">
<fileset dir="my/src/dir">
<exclude name="**/*.bak"/>
</fileset>
<mapper type="glob" from="*" to="*.bak"/>
</move>


4.2 Java鐩稿叧
4.2.1 Javac
? 緙栬瘧java鍘熶唬鐮?br />? 渚嬪瓙
1. <javac srcdir="${src}"
destdir="${build}"
classpath="xyz.jar"
debug="on"
/>
緙栬瘧${src}鐩綍鍙婂叾瀛愮洰褰曚笅鐨勬墍鏈夈侸ava鏂囦歡錛屻侰lass鏂囦歡灝嗘斁鍦?锝沚uild锝濇寚瀹氱殑鐩綍涓嬶紝classpath琛ㄧず闇瑕佺敤鍒扮殑綾繪枃浠舵垨鑰呯洰褰曪紝debug璁劇疆涓簅n琛ㄧず杈撳嚭debug淇℃伅
2. <javac srcdir="${src}:${src2}"
destdir="${build}"
includes="mypackage/p1/**,mypackage/p2/**"
excludes="mypackage/p1/testpackage/**"
classpath="xyz.jar"
debug="on"
/>
緙栬瘧${src}鍜?{src2}鐩綍鍙婂叾瀛愮洰褰曚笅鐨勬墍鏈夈侸ava鏂囦歡錛屼絾鏄痯ackage/p1/**,mypackage/p2/**灝嗚緙栬瘧錛岃宮ypackage/p1/testpackage/**灝嗕笉浼氳緙栬瘧銆侰lass鏂囦歡灝嗘斁鍦?锝沚uild锝濇寚瀹氱殑鐩綍涓嬶紝classpath琛ㄧず闇瑕佺敤鍒扮殑綾繪枃浠舵垨鑰呯洰褰曪紝debug璁劇疆涓簅n琛ㄧず杈撳嚭debug淇℃伅
3. <property name="classpath" value=".;./xml-apis.jar;../lib/xbean.jar;./easypo.jar"/>

<javac srcdir="${src}"
destdir="${src}"
classpath="${classpath}"
debug="on"
/>
璺緞鏄湪property涓畾涔夌殑
4.2.2 java
? 鎵ц鎸囧畾鐨刯ava綾?/p>


? 渚嬪瓙錛?br />1. <java classname="test.Main">
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
classname涓寚瀹氳鎵ц鐨勭被錛宑lasspath璁懼畾瑕佷嬌鐢ㄧ殑鐜鍙橀噺
2. <path id="project.class.path">
<pathelement location="lib/"/>
<pathelement path="${java.class.path}/"/>
<pathelement path="${additional.path}"/>
</path>

<target ... >
<rmic ...>
<classpath refid="project.class.path"/>
</rmic>
</target>

4.3 鎵撳寘鐩稿叧
4.3.1 jar
? 灝嗕竴緇勬枃浠舵墦鍖?br />? 渚嬪瓙錛?br />1. <jar destfile="${dist}/lib/app.jar" basedir="${build}/classes"/>
灝?{build}/classes涓嬮潰鐨勬墍鏈夋枃浠舵墦鍖呭埌${dist}/lib/app.jar涓?br />2. <jar destfile="${dist}/lib/app.jar"
basedir="${build}/classes"
includes="mypackage/test/**"
excludes="**/Test.class"
/>
灝?{build}/classes涓嬮潰鐨勬墍鏈夋枃浠舵墦鍖呭埌${dist}/lib/app.jar涓紝浣嗘槸鍖呮嫭mypackage/test錛忔墍鏈夋枃浠朵笉鍖呮嫭鎵鏈夌殑Test.class
3. <jar destfile="${dist}/lib/app.jar"
basedir="${build}/classes"
includes="mypackage/test/**"
excludes="**/Test.class"
manifest=鈥漨y.mf鈥?br />/>
manifest灞炴ф寚瀹氳嚜宸辯殑META-INF/MANIFEST.MF鏂囦歡錛岃屼笉鏄敱緋葷粺鐢熸垚
4.3.2 war
? 瀵笿ar鐨勬墿灞曪紝鐢ㄤ簬鎵撳寘Web搴旂敤
? 渚嬪瓙錛?br />? 鍋囪鎴戜滑鐨勬枃浠剁洰褰曞涓嬶細
thirdparty/libs/jdbc1.jar
thirdparty/libs/jdbc2.jar
build/main/com/myco/myapp/Servlet.class
src/metadata/myapp.xml
src/html/myapp/index.html
src/jsp/myapp/front.jsp
src/graphics/images/gifs/small/logo.gif
src/graphics/images/gifs/large/logo.gif
? 涓嬮潰鏄垜浠殑浠誨姟鐨勫唴瀹癸細
<war destfile="myapp.war" webxml="src/metadata/myapp.xml">
<fileset dir="src/html/myapp"/>
<fileset dir="src/jsp/myapp"/>
<lib dir="thirdparty/libs">
<exclude name="jdbc1.jar"/>
</lib>
<classes dir="build/main"/>
<zipfileset dir="src/graphics/images/gifs"
prefix="images"/>
</war>
? 瀹屾垚鍚庣殑緇撴灉錛?br />WEB-INF/web.xml
WEB-INF/lib/jdbc2.jar
WEB-INF/classes/com/myco/myapp/Servlet.class
META-INF/MANIFEST.MF
index.html
front.jsp
images/small/logo.gif
images/large/logo.gif
4.3.3 ear
? 鐢ㄤ簬鎵撳寘浼佷笟搴旂敤
? 渚嬪瓙
<ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
<fileset dir="${build.dir}" includes="*.jar,*.war"/>
</ear>

4.4 鏃墮棿鎴?br />鍦ㄧ敓鎴愮幆澧冧腑浣跨敤褰撳墠鏃墮棿鍜屾棩鏈燂紝浠ユ煇縐嶆柟寮忔爣璁版煇涓敓鎴愪換鍔$殑杈撳嚭錛屼互渚胯褰曞畠鏄綍鏃剁敓鎴愮殑錛岃繖緇忓父鏄彲鍙栫殑銆傝繖鍙兘娑夊強緙栬緫涓涓枃浠訛紝浠ヤ究鎻掑叆涓涓瓧絎︿覆鏉ユ寚瀹氭棩鏈熷拰鏃墮棿錛屾垨灝嗚繖涓俊鎭悎騫跺埌 JAR 鎴?zip 鏂囦歡鐨勬枃浠跺悕涓?br />榪欑闇瑕佹槸閫氳繃綆鍗曚絾鏄潪甯告湁鐢ㄧ殑 tstamp 浠誨姟鏉ヨВ鍐崇殑銆傝繖涓換鍔¢氬父鍦ㄦ煇嬈$敓鎴愯繃紼嬪紑濮嬫椂璋冪敤錛屾瘮濡傚湪涓涓?init 鐩爣涓傝繖涓換鍔′笉闇瑕佸睘鎬э紝璁稿鎯呭喌涓嬪彧闇 <tstamp/> 灝辮凍澶熶簡銆?br />tstamp 涓嶄駭鐢熶換浣曡緭鍑猴紱鐩稿弽錛屽畠鏍規嵁褰撳墠緋葷粺鏃墮棿鍜屾棩鏈熻緗?Ant 灞炴с備笅闈㈡槸 tstamp 璁劇疆鐨勪竴浜涘睘鎬с佸姣忎釜灞炴х殑璇存槑錛屼互鍙婅繖浜涘睘鎬у彲琚緗埌鐨勫肩殑渚嬪瓙錛?br />灞炴?璇存槑 渚嬪瓙
DSTAMP 璁劇疆涓哄綋鍓嶆棩鏈燂紝榛樿鏍煎紡涓簓yyymmdd 20031217
TSTAMP 璁劇疆涓哄綋鍓嶆椂闂達紝榛樿鏍煎紡涓?hhmm 1603
TODAY 璁劇疆涓哄綋鍓嶆棩鏈燂紝甯﹀畬鏁寸殑鏈堜喚 2003 騫?12 鏈?17 鏃?br />渚嬪錛屽湪鍓嶄竴灝忚妭涓紝鎴戜滑鎸夊涓嬫柟寮忓垱寤轟簡涓涓?JAR 鏂囦歡錛?/p>

<jar destfile="package.jar" basedir="classes"/>

鍦ㄨ皟鐢?tstamp 浠誨姟涔嬪悗錛屾垜浠兘澶熸牴鎹棩鏈熷懡鍚嶈 JAR 鏂囦歡錛屽涓嬫墍紺猴細

<jar destfile="package-${DSTAMP}.jar" basedir="classes"/>

鍥犳錛屽鏋滆繖涓換鍔″湪 2003 騫?12 鏈?17 鏃ヨ皟鐢紝璇?JAR 鏂囦歡灝嗚鍛藉悕涓?package-20031217.jar銆?br />榪樺彲浠ラ厤緗?tstamp 浠誨姟鏉ヨ緗笉鍚岀殑灞炴э紝搴旂敤涓涓綋鍓嶆椂闂翠箣鍓嶆垨涔嬪悗鐨勬椂闂村亸縐伙紝鎴栦互涓嶅悓鐨勬柟寮忔牸寮忓寲璇ュ瓧絎︿覆銆傛墍鏈夎繖浜涢兘鏄嬌鐢ㄤ竴涓祵濂楃殑 format 鍏冪礌鏉ュ畬鎴愮殑錛屽涓嬫墍紺猴細

<tstamp>
<format property="OFFSET_TIME"
pattern="HH:mm:ss"
offset="10" unit="minute"/>
</tstamp>

涓婇潰鐨勬竻鍗曞皢 OFFSET_TIME 灞炴ц緗負璺濈褰撳墠鏃墮棿 10 鍒嗛挓涔嬪悗鐨勫皬鏃舵暟銆佸垎閽熸暟鍜岀鏁般?br />鐢ㄤ簬瀹氫箟鏍煎紡瀛楃涓茬殑瀛楃涓?java.text.SimpleDateFormat 綾繪墍瀹氫箟鐨勯偅浜涙牸寮忓瓧絎︾浉鍚?/p>

4.5 鎵цSQL璇彞
? 閫氳繃jdbc鎵цSQL璇彞
? 渚嬪瓙錛?br />1. <sql
driver="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/mydb"
userid="root"
password="root"
src="data.sql"
/>
2. <sql
driver="org.database.jdbcDriver"
url="jdbc:database-url"
userid="sa"
password="pass"
src="data.sql"
rdbms="oracle"
version="8.1."
>
</sql>
鍙湁鍦╫racle銆佺増鏈槸8.1鐨勬椂鍊欐墠鎵ц

4.6 鍙戦侀偖浠?br />? 浣跨敤SMTP鏈嶅姟鍣ㄥ彂閫侀偖浠?br />? 渚嬪瓙錛?br /><mail mailhost="smtp.myisp.com" mailport="1025" subject="Test build">
<from address="me@myisp.com"/>
<to address="all@xyz.com"/>
<message>The ${buildname} nightly build has completed</message>
<fileset dir="dist">
<includes name="**/*.zip"/>
</fileset>
</mail>
? mailhost錛?SMTP鏈嶅姟鍣ㄥ湴鍧
? mailport錛?鏈嶅姟鍣ㄧ鍙?br />? subject錛?涓婚
? from錛?鍙戦佷漢鍦板潃
? to錛?鎺ュ彈浜哄湴鍧
? message錛?鍙戦佺殑娑堟伅
? fileset錛?璁劇疆闄勪歡聽



junky 2006-10-17 15:50 鍙戣〃璇勮
]]>
IDE鎻掍歡http://www.tkk7.com/junky/archive/2006/09/11/68911.htmljunkyjunkyMon, 11 Sep 2006 02:52:00 GMThttp://www.tkk7.com/junky/archive/2006/09/11/68911.htmlhttp://www.tkk7.com/junky/comments/68911.htmlhttp://www.tkk7.com/junky/archive/2006/09/11/68911.html#Feedback0http://www.tkk7.com/junky/comments/commentRss/68911.htmlhttp://www.tkk7.com/junky/services/trackbacks/68911.html
1eclips:
2聽聽聽聽properties:聽http://propedit.sourceforge.jp/eclipse/updates/
3聽聽聽聽聽聽聽聽SVN:聽聽聽聽聽聽聽聽聽聽聽http://subclipse.tigris.org/update/


junky 2006-09-11 10:52 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲综合久久成人69| 亚洲国产成人久久综合碰| 久久精品视频亚洲| 人体大胆做受免费视频| 国产亚洲福利一区二区免费看| 在线亚洲午夜片AV大片| 免费高清在线爱做视频| 欧洲亚洲综合一区二区三区| 国产传媒在线观看视频免费观看 | 日本免费一区二区三区最新| 亚洲乱亚洲乱妇无码| 国产国产成年年人免费看片| 黄色免费网址在线观看| 久久久久亚洲AV成人网人人网站| 国产免费高清69式视频在线观看| 国产亚洲精品自在久久| a拍拍男女免费看全片| 中文字幕乱码亚洲无线三区| 国产精品免费视频网站| 国产成人1024精品免费| 亚洲av综合avav中文| 亚洲免费综合色在线视频| 精品成人一区二区三区免费视频| 国产精品亚洲高清一区二区| 国产高清不卡免费视频| 亚洲不卡视频在线观看| 国产女高清在线看免费观看| 99久久婷婷免费国产综合精品| 日本久久久久亚洲中字幕| 午夜免费不卡毛片完整版| 久久国产免费直播| 亚洲国产高清视频在线观看| 国产自产拍精品视频免费看| 在线看片免费人成视频久网下载 | 国产成人va亚洲电影| 亚洲欧洲日产国码无码久久99| 99免费视频观看| 18禁亚洲深夜福利人口| 亚洲AV无码国产丝袜在线观看| 一区二区无码免费视频网站| 一级毛片免费全部播放|