锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍐呭鎽樿錛?br>ant鏄竴涓熀浜嶫AVA鐨勮嚜鍔ㄥ寲鑴氭湰寮曟搸錛岃剼鏈牸寮忎負(fù)XML銆傞櫎浜?jiǎn)鍋欽AVA緙栬瘧鐩稿叧浠誨姟澶栵紝ANT榪樺彲浠ラ氳繃鎻掍歡瀹炵幇寰堝搴旂敤鐨勮皟鐢ㄣ?br> 褰撲竴涓唬鐮侀」鐩ぇ浜?jiǎn)浠ュ悗锛屾瘡娆¢噸鏂熬~栬瘧錛屾墦鍖咃紝嫻嬭瘯絳夐兘浼?xì)鍙樺緱闈炲父澶嶆潅鑰屼笖閲嶅錛屽洜姝璇█涓湁make鑴氭湰鏉ュ府鍔╄繖浜涘伐浣滅殑鎵歸噺瀹屾垚銆傚湪Java 涓簲鐢ㄦ槸騫沖彴鏃犲叧鎬х殑錛屽綋鐒朵笉浼?xì)鐢q沖彴鐩稿叧鐨刴ake鑴氭湰鏉ュ畬鎴愯繖浜涙壒澶勭悊浠誨姟浜?jiǎn)锛孉NT鏈韓灝辨槸榪欐牱涓涓祦紼嬭剼鏈紩鎿庯紝鐢ㄤ簬鑷姩鍖栬皟鐢ㄧ▼搴忓畬鎴愰」鐩殑緙栬瘧錛屾墦鍖咃紝嫻嬭瘯絳夈傞櫎浜?jiǎn)鍩轰簬JAVA鏄鉤鍙版棤鍏崇殑澶栵紝鑴氭湰鐨勬牸寮忔槸鍩轟簬XML鐨勶紝姣攎ake鑴氭湰鏉ヨ榪樿濂界淮鎶や竴浜涖?br> 姣忎釜ant鑴氭湰錛堢己鐪佸彨build.xml錛変腑璁劇疆浜?jiǎn)涓緋誨垪浠誨姟(target)錛氭瘮濡傚浜庝竴涓竴鑸殑欏圭洰鍙兘闇瑕佹湁浠ヤ笅浠誨姟銆?/p>
Jakarta ANT:
ANT鐨勫熀鏈蹇碉細(xì)Java鐨凪akefile
鑰屽涓換鍔′箣闂村線寰鍙堝寘鍚簡(jiǎn)涓瀹氫簡(jiǎn)渚濊禆鍏崇郴錛氭瘮濡傛妸鏁翠釜搴旂敤鎵撳寘浠誨姟(jar)鐨勮繖涓緷璧栦簬緙栬瘧浠誨姟(build)錛岃岀紪璇戜換鍔″張渚濊禆浜庢暣涓幆澧冨垵濮嬪寲浠誨姟(init)絳夈?br>
娉細(xì)鎴戠湅鍒板緢澶氶」鐩殑ant鑴氭湰涓殑鍛藉悕鍩烘湰涓婇兘鏄竴鑷寸殑錛屾瘮濡傦細(xì)緙栬瘧涓鑸彨build鎴栬卌ompile錛涙墦鍖呬竴鑸彨jar鎴杦ar錛涚敓鎴愭枃妗d竴鑸懡鍚嶄負(fù)javadoc鎴杍avadocs錛涙墽琛屽叏閮ㄤ換鍔ll銆傚湪姣忎釜浠誨姟鐨勪腑錛孉NT浼?xì)鏍规嵁閰嵕|皟鐢ㄤ竴浜涘閮ㄥ簲鐢ㄥ茍閰嶄互鐩稿簲鍙傛暟鎵ц銆傝櫧鐒禔NT鍙皟鐢ㄧ殑澶栭儴搴旂敤縐嶇被闈炲父涓板瘜錛屼絾鍏跺疄鏈甯哥敤鐨勫氨2錛?涓細(xì)姣斿javac javadoc jar絳夈?
ANT鐨勫畨瑁?/h2>
瑙e寘鍚庡湪緋葷粺鍙墽琛岃礬寰勪腑鍔犲叆鎸囧悜ant鐨刡in鐨勮礬寰勫氨鍙互浜?jiǎn)锛屾瘮濡傚彲浠ュ湪GNU/Linux涓婃妸浠ヤ笅閰嶇疆鍔犲叆/etc/profile涓細(xì)
export ANT_HOME=/home/ant
export JAVA_HOME=/usr/java/j2sdk1.4.1
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin
榪欐牱鎵цant 鍚庯紝濡傛灉涓嶆寚瀹氶厤緗枃浠禷nt浼?xì)缂虹渷鎵綽uild.xml榪欎釜閰嶇疆鏂囦歡錛屽茍鏍規(guī)嵁閰嶇疆鏂囦歡鎵ц浠誨姟錛岀己鐪佺殑浠誨姟璁劇疆鍙互鎸囧悜鏈甯哥敤鐨勪換鍔★紝姣斿錛?build錛屾垨鎸囧悜鎵撳嵃甯姪淇℃伅錛歶sage錛屽憡璇夌敤鎴鋒湁閭d簺鑴氭湰閫夐」鍙互浣跨敤銆?br>
ANT鐨勪嬌鐢?br>
<project default="usage" basedir=".">
<!-- =================================================================== -->
<!-- Initialization target -->
<!-- =================================================================== -->
<target name="init">
<tstamp/>
<property file="${basedir}/build.properties" />
<property name="Name" value="ProjectFullName"/>
<property name="name" value="project_name"/>
<property name="version" value="0.2"/>
<property name="year" value="2003"/>
<echo message="----------- ${Name} ${version} [${year}] ------------"/>
<property name="debug" value="off"/>
<property name="optimize" value="on"/>
<property name="deprecation" value="on"/>
<property name="src.dir" value="./src/WEB-INF/src"/>
<property name="lib.dir" value="./src/WEB-INF/lib"/>
<property name="packages" value="com.chedong.*,org.apache.lucene.*"/>
<property name="build.src" value="./src/WEB-INF/build"/>
<property name="build.dest" value="./src/WEB-INF/classes"/>
<property name="build.javadocs" value="./src/doc"/>
<path id="classpath">
<pathelement path="${jsdk_jar}"/>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<filter token="year" value="${year}"/>
<filter token="version" value="${version}"/>
<filter token="date" value="${TODAY}"/>
<filter token="log" value="true"/>
<filter token="verbose" value="true"/>
</target>
<!-- =================================================================== -->
<!-- Help on usage -->
<!-- =================================================================== -->
<target name="usage" depends="init">
<echo message="${Name} Build file"/>
<echo message="-------------------------------------------------------------"/>
<echo message=""/>
<echo message=" available targets are:"/>
<echo message=""/>
<echo message=" jar --> generates the ${name}.jar file"/>
<echo message=" build --> compiles the source code"/>
<echo message=" javadoc --> generates the API documentation"/>
<echo message=" clean --> cleans up the directory"/>
<echo message=""/>
<echo message=" Please rename build.properties.default to build.properties"/>
<echo message=" and edit build.properties to specify JSDK 2.3 classpath."/>
<echo message=""/>
<echo message=" See the comments inside the build.xml file for more details."/>
<echo message="-------------------------------------------------------------"/>
<echo message=""/>
<echo message=""/>
</target>
<!-- =================================================================== -->
<!-- Prepares the source code -->
<!-- =================================================================== -->
<target name="prepare-src" depends="init">
<!-- create directories -->
<mkdir dir="${build.src}"/>
<mkdir dir="${build.dest}"/>
<!-- copy src files -->
<copy todir="${build.src}">
<fileset dir="${src.dir}"/>
</copy>
</target>
<!-- =================================================================== -->
<!-- Compiles the source directory -->
<!-- =================================================================== -->
<target name="build" depends="prepare-src">
<javac srcdir="${build.src}"
destdir="${build.dest}"
debug="${debug}"
optimize="${optimize}">
<classpath refid="classpath"/>
</javac>
</target>
<!-- =================================================================== -->
<!-- Creates the class package -->
<!-- =================================================================== -->
<target name="jar" depends="build">
<jar jarfile="${lib.dir}/${name}.jar"
basedir="${build.dest}"
includes="**"/>
</target>
<!-- =================================================================== -->
<!-- Creates the API documentation -->
<!-- =================================================================== -->
<target name="javadoc" depends="build">
<mkdir dir="${build.javadocs}"/>
<javadoc packagenames="${packages}"
sourcepath="${build.src}"
destdir="${build.javadocs}"
author="true"
version="true"
use="true"
splitindex="true"
windowtitle="${Name} API"
doctitle="${Name}">
<classpath refid="classpath"/>
</javadoc>
</target>
<!-- =================================================================== -->
<!-- Clean targets -->
<!-- =================================================================== -->
<target name="clean" depends="init">
<delete dir="${build.src}"/>
<delete dir="${build.dest}/org"/>
<delete dir="${build.dest}/com"/>
<delete>
<fileset dir="${build.dest}" includes="**/*.class"/>
</delete>
</target>
</project>
<!-- End of file -->
緙虹渷浠誨姟錛歶sage 鎵撳嵃甯姪鏂囨。錛屽憡璇夋湁閭d簺浠誨姟閫夐」錛氬彲鐢ㄧ殑鏈塨uild, jar, javadoc鍜宑lean.
鍒濆鍖栫幆澧冨彉閲忥細(xì)init
鎵鏈変換鍔¢兘鍩轟簬涓浜涘熀鏈幆澧冨彉閲忕殑璁劇疆鍒濆鍖栧畬鎴愶紝鏄悗緇叾浠栦換鍔$殑鍩虹錛屽湪鐜鍒濆鍖栬繃紼嬩腑錛屾湁2鐐規(guī)瘮杈冨彲浠ユ柟渚胯緗細(xì)
1 闄や簡(jiǎn)浣跨敤鍗寸己鐪佺殑property璁劇疆浜?jiǎn)JAVA婧愯礬寰勫拰杈撳嚭璺緞澶栵紝寮曠敤浜?jiǎn)涓涓閮ㄧ殑build.properties鏂囦歡涓殑璁劇疆錛?br><property file="${basedir}/build.properties" />
榪欐牱澶ч儴鍒嗙畝鍗曢厤緗敤鎴峰彧瑕佷細(xì)鐪嬫噦build.properties灝卞彲浠ヤ簡(jiǎn)錛屾瘯绔焁ML姣旇搗key value鐨勫睘鎬ф枃浠惰繕鏄鍙鎬у樊涓浜涖傜敤build.properties涔熷彲浠ユ柟渚垮叾浠栫敤鎴蜂粠緙栬瘧鐨勭粏鑺備腑瑙f斁鍑烘潵銆?br>
2 CLASSPATH璁劇疆錛氫嬌鐢ㄤ簡(jiǎn)鍏朵腑鐨勶細(xì)
<path id="classpath">
<pathelement path="${jsdk_jar}"/>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
鍒欑浉褰撲簬璁劇疆浜?jiǎn)锛?xì)CLASSPATH=/path/to/resin/lib/jsdk23.jar; /path/to/project/lib/*.jar;
鏂囦歡澶嶅埗錛歱repare-src
鍒涘緩涓存椂SRC瀛樻斁鐩綍鍜岃緭鍑虹洰褰曘?br> <!-- =================================================================== -->
<!-- Prepares the source code -->
<!-- =================================================================== -->
<target name="prepare-src" depends="init">
<!-- create directories -->
<mkdir dir="${build.src}"/>
<mkdir dir="${build.dest}"/>
<!-- copy src files -->
<copy todir="${build.src}">
<fileset dir="${src.dir}"/>
</copy>
</target>
緙栬瘧浠誨姟錛歜uild
緙栬瘧鏃剁殑CLASSPATH鐜閫氳繃涓涓嬫柟寮忔壘鍒板紩鐢ㄤ竴涓猵ath瀵硅薄
<classpath refid="classpath"/>
鎵撳寘浠誨姟錛歫ar
瀵瑰簲鐢ㄦ墦鍖呯敓鎴愰」鐩墍鍐欏悕鐨?jar鏂囦歡
<!-- =================================================================== -->
<!-- Creates the class package -->
<!-- =================================================================== -->
<target name="jar" depends="build">
<jar jarfile="${lib.dir}/${name}.jar"
basedir="${build.dest}"
includes="**"/>
</target>
鐢熸垚JAVADOC鏂囨。浠誨姟: javadoc
<!-- =================================================================== -->
<!-- Creates the API documentation -->
<!-- =================================================================== -->
<target name="javadoc" depends="build">
<mkdir dir="${build.javadocs}"/>
<javadoc packagenames="${packages}"
sourcepath="${build.src}"
destdir="${build.javadocs}"
author="true"
version="true"
use="true"
splitindex="true"
windowtitle="${Name} API"
doctitle="${Name}">
<classpath refid="classpath"/>
</javadoc>
</target>
娓呯┖涓存椂緙栬瘧鏂囦歡錛歝lean
<!-- =================================================================== -->
<!-- Clean targets -->
<!-- =================================================================== -->
<target name="clean" depends="init">
<delete dir="${build.src}"/>
<delete dir="${build.dest}/org"/>
<delete dir="${build.dest}/com"/>
<delete>
<fileset dir="${build.dest}" includes="**/*.class"/>
</delete>
</target>
TODO錛?br>鏇村浠誨姟/鎵╁睍錛氾紙鏍蜂緥錛?br>
鍙傝冭祫鏂欙細(xì)
http://ant.apache.org
]]>