隨筆-1  評論-0  文章-0  trackbacks-0
            2007年2月11日
          <?xml version="1.0" encoding="UTF-8"?>
          <!-- =============================================================== -->
          <!-- ANT buildfile快速參考 -->
          <!-- ALin 2006-12-30 14:20 -->
          <!-- =============================================================== -->

          <project default="help" basedir="." name="Cabin">
          ??? <!-- project的描述,可以省略???????????????????????????????????? -->
          ??? <description>Ant Buildfile參考</description>

          ??? <!-- =========================================================== -->
          ??? <!-- 項目相關的屬性設置????????????????????????????????????????? -->
          ??? <!-- =========================================================== -->

          ??? <property environment="env"></property><!-- 引用系統(tǒng)環(huán)境變量???? -->
          ??? <property name="app.nane" value="Cabin"></property>
          ??? <property name="app.home" value="."></property>
          ??? <property name="src.dir" value="${app.home}/src"></property>
          ??? <property name="bin.dir" value="${app.home}/bin"></property>
          ??? <property name="lib.dir" value="${app.home}/lib"></property>
          ??? <property name="build.dir" value="${app.home}/build"></property>
          ??? <property name="build.classes" value="${build.dir}/classes"/>
          ??? <property name="deploy.dir" value="${app.home}/hello"/>
          ??? <property name="deploy.classes" value="${deploy.dir}/WEB-INF/classes"/>
          ??? <property name="TOMCAT_HOME" value="C:/Tomcat 5.5"/>
          ??? <property name="Log4j.conf" value="log4j.configuration"></property>
          ??? <property name="Log4j.file" value="log4j.properties"></property>
          ??? <property name="JWSDP.HOME" value="C:/Sun/jwsdp-2.0"></property>
          ??? <property name="JAXB.HOME" value="${JWSDP.HOME}/jaxb"></property>
          ???
          ??? <property name="dtd.file1" value="datasource.dtd"></property>
          ??? <property name="dtd.file2" value="bookList.dtd"></property>

          ??? <property name="jboss.jar.dir"
          ??? ??? value="D:/Program Files/jboss-4.0.2/client"></property>
          ???
          ??? <!-- 定義XDoclet目錄,后面用到其中的Task??????????????????????? -->
          ??? <property name="xdoclet.home" value="D:/Program Files/xdoclet-1.2.3"></property>
          ???
          ??? <!-- 引用外部屬性文件 -->
          ??? <property file="db.properties"></property>

          ??? <!-- =========================================================== -->
          ??? <!-- 編譯和運行的classpath?????????????????????????????????????? -->
          ??? <!-- =========================================================== -->
          ??? <path id="compile.classpath">

          ??? ??? <!-- The object files for this application -->
          ??? ??? <pathelement path="${build.classes}"/>
          ??? ???
          ??? ??? <!-- 包括目錄下的所有.jar和.zip文件????????????????????????? -->
          ??? ??? <fileset dir="${TOMCAT_HOME}/common/lib">?? <!-- lib的目錄?? -->
          ??? ??? ??? <include name="*.jar"/>???????????????? <!-- 包括jar文件 -->
          ??? ??? ??? <include name="*.zip"/>
          ??? ??? ??? <exclude name="*.properties"/> <!-- 不包括properties文件 -->
          ??? ??? </fileset>

          ??? ??? <!-- 可以指定具體的某個.jar文件????????????????????????????? -->
          ??? ??? <fileset dir="${jboss.jar.dir}">
          ??? ??? ??? <include name="jbossall-client.jar"/>
          ??? ??? ??? <include name="jnp-client.jar"/>
          ??? ??? </fileset>
          ??? ??? <!-- 可以使用location代替path??????????????????????????????? -->
          ??? ??? <pathelement path="${TOMCAT_HOME}/common/classes"/>
          ??? </path>
          ???
          ??? <!-- XDoelet的lib目錄 -->
          ??? <path id="xdoclet.lib.path">
          ??? ??? <fileset dir="${xdoclet.home}/lib">
          ??? ??? ??? <include name="*.jar"/>
          ??? ??? </fileset>
          ??? </path>
          ???
          ??? <!-- 定義Task,自己擴展的Ant Task也使用類似的語法進行定義?????? -->
          ??? <target name="define-task">
          ??? ??? <taskdef name="documentdoclet"
          ??? ??? ??? classname="xdoclet.modules.doc.DocumentDocletTask"
          ??? ??? ??? classpathref="xdoclet.lib.path">
          ??? ??? </taskdef>
          ??? ??? <taskdef name="ejbdoclet"
          ??? ??? ??? classname="xdoclet.modules.ejb.EjbDocletTask"
          ??? ??? ??? classpathref="xdoclet.lib.path">
          ??? ??? </taskdef>
          ??? ??? <taskdef name="webdoclet"
          ??? ??? ??? classname="xdoclet.modules.web.WebDocletTask"
          ??? ??? ??? classpathref="xdoclet.lib.path" />
          ??? </target>

          ??? <!-- 創(chuàng)建目錄,如果已經(jīng)存在,則跳過????????????????????????????? -->
          ??? <target name="prepare">
          ??? ??? <mkdir dir="${src.dir}/META-INF"/>
          ??? ??? <mkdir dir="${bin.dir}/META-INF"/>
          ??? ??? <mkdir dir="${lib.dir}"/>
          ??? </target>

          ??? <!-- =========================================================== -->
          ??? <!-- target設置????????????????????????????????????????????????? -->
          ??? <!-- =========================================================== -->

          ??? <target name="compile" depends="prepare">
          ??? ??? <javac srcdir="${src.dir}" destdir="${build.classes}" debug="no">
          ??? ??? ??? <!-- 引用上面的compile.classpath-->
          ??? ??? ??? <classpath refid="compile.classpath"/>
          ??? ??? </javac>
          ??? </target>
          ???
          ??? <target name="copy" depends="compile">
          ??? ??? <!-- 把${src.dir}下面的properties文件復制到${deploy.classes} -->
          ??? ??? <copy todir="${deploy.classes}">
          ??? ??? ??? <fileset file="${src.dir}/*.properties"/>
          ??? ??? </copy>
          ??? ???
          ??? ??? <!-- 復制指定文件 -->
          ??? ??? <copy todir="${deploy.home}">
          ??? ??? ??? <fileset file="${build.classes}/${app.name}.jar"/>
          ??? ??? </copy>

          ??? ??? <!-- 把${build.classes}下面的文件復制到${deploy.classes},包 -->
          ??? ??? <!-- 括.class文件,不包括.log文件,子目錄中的文件也會復制。? -->

          ??? ??? <copy todir="${deploy.classes}">
          ??? ??? ??? <fileset dir="${build.classes}">
          ??? ??? ??? ??? <include name="**/*.class"/>
          ??? ??? ??? ??? <exclude name="**/*.log"/>
          ??? ??? ??? </fileset>
          ??? ??? </copy>
          ??? ???
          ??? ??? <!-- 復制具體文件,覆蓋已有的文件??????????????????????????? -->
          ??? ??? <copy file="src/META-INF/services.xml"
          ??? ??? ??? tofile="${dest.dir.classes}/META-INF/services.xml"
          ??? ??? ??? overwrite="true"/>
          ??? </target>
          ???
          ??? <!-- 使用JDK的native2ascii工具執(zhí)行本地化操作,轉換編碼。???????? -->
          ??? <target name="locale">
          ??? ??? <echo>Target ----- [locale]</echo>
          ??? ??? <exec dir="${src.dir}" executable="native2ascii" os="Windows XP">
          ??? ??? ? <arg
          ??? ??? ? ??? line="-encoding GBK MessageResources_temp.properties
          ??? ??? ? ??? ??? MessageResources_zh_CN.properties"/>
          ??? ??? </exec>
          ??? </target>

          ??? <target name="clean">
          ??? ??? <!-- 刪除${deploy.classes}下面的所有(.class)文件-->
          ??? ??? <delete>
          ??? ??? ??? <fileset dir="${deploy.classes}">
          ??? ??? ??? ??? <include name="*"/> <!-- 包括所有文件 -->
          ??? ??? ??? ??? <include name="*/**.class"/>
          ??? ??? ??? ??? <exclude name=""/>? <!-- ""表示不含任何文件 -->
          ??? ??? ??? </fileset>
          ??? ??? </delete>

          ??? ??? <!-- 刪除${bin.dir}下面的.class、.xml、.properties、.log文件 -->
          ??? ??? <delete>
          ??? ??? ??? <fileset dir="${bin.dir}">
          ??? ??? ??? ??? <include name="**/*.class"/>
          ??? ??? ??? ??? <include name="**/*.xml"/>
          ??? ??? ??? ??? <include name="**/*.properties"/>
          ??? ??? ??? ??? <include name="**/*.log"/>
          ??? ??? ??? </fileset>
          ??? ??? </delete>

          ??? ??? <!-- 刪除指定路徑的文件 -->
          ??? ??? <delete file="${deploy.home}/${app.name}.jar"></delete>
          ??? </target>
          ???
          ??? <!-- run依賴于compile和delete??????????????????????????????????? -->
          ??? <!-- 類似于在${bin.dir}下面執(zhí)行java events.EventManager,只有??? -->
          ??? <!-- fork="YES"的情況下,dir屬性才有效,使用classpathref引用前面 -->
          ??? <!-- 的compile.classpath。?????????????????????????????????????? -->
          ??? <!-- arg表示提供參數(shù)。運行方式:ant run -Daction=value?????????? -->
          ??? <!-- 其效果等同于:java events.EventManager value??????????????? -->
          ??? <!-- 只不過不再需要用-cp指定classpath,非常方便。??????????????? -->

          ??? <target name="run" depends="compile, clean">
          ??? ??? <java classname="events.EventManager" fork="YES" dir="${bin.dir}"
          ??? ??? ??? classpathref="compile.classpath">
          ??? ??? ??? <classpath path="${bin.dir}"/><!-- classpath是必須的,否則會出現(xiàn)NoClassDefFoundError?? -->
          ??? ??? ??? <arg value="${action}"/>?? <!-- arg也不是必須的,1或多個 -->
          ??? ??? </java>
          ??? </target>
          ???
          ??? <!-- 使用exec可以運行可執(zhí)行文件。dir表示在某個目錄下執(zhí)行;?????? -->
          ??? <!-- executable表示可執(zhí)行文件的路徑,如果在path變量中,則只要??? -->
          ??? <!-- 可執(zhí)行文件名即可,否則應該給出完整路徑;os表示是什么系統(tǒng);? -->
          ??? <!-- 也可以通過arg提供參數(shù)。???????????????????????????????????? -->

          ??? <target name="xjc">
          ??? ??? <echo>Run xjc.bat and generate sources.</echo>
          ??? ??? <exec dir="${src.dir}" executable="${JAXB.HOME}/bin/xjc.bat" os="Windows XP">
          ??? ??? ? <arg line="-dtd ${dtd.file2}"></arg>
          ??? ??? ? <!--arg value="${dtd}"></arg--><!-- DTD file as run-time argument-->
          ??? ??? </exec>
          ??? </target>

          ??? <!-- 把${bin.dir}下面的所有文件打包成:${app.name}.aar文件,并放 -->
          ??? <!-- 置在${bin.dir}目錄下。類似于在${bin.dir}目錄下執(zhí)行:??????? -->
          ??? <!-- jar cvf Cabin.aar .???????????????????????????????????????? -->

          ??? <target name="jar">
          ??? ??? <jar basedir="${bin.dir}" destfile="${bin.dir}/${app.name}.aar">
          ??? ??? </jar>
          ??? </target>

          ??? <!-- 使用antcall調(diào)用其他的target? -->
          ??? <target name="deploy">
          ??? ??? <antcall target="jar"/>
          ??? </target>
          ???
          ??? <!-- 與用戶交互輸入:Input task。validargs用逗號隔開,中間不能有空格。 -->
          ??? <!-- 輸入必須是validargs之一,否則會循環(huán)要求輸入。之后像使用已經(jīng)定義的 -->
          ??? <!-- 屬性一樣使用 -->

          ??? <target name="input">
          ??? ??? <input message="請選擇一個Target"
          ?????????????? validargs="compile,jar,test"
          ?????????????? addproperty="my.input"/>
          ??? ???
          ??? ??? <echo>你輸入的是:${my.input}</echo>
          ??? </target>

          ??? <target name="help">
          ??? ??? <antcall target="show-img"/>

          ??? ??? <!-- echo可以像下面這樣用 -->
          ??? ??? <echo message="Hello, ANT!"></echo>
          ??? ??? <echo>ant copy????????????????? Copy files.</echo>
          ??? ??? <echo>ant compile?????????????? Compile source files.</echo>
          ??? ??? <echo>ant/ant build???????????? Build.</echo>
          ??? ??? <echo>ant run -Daction=store??? Run client</echo>
          ??? ??? <echo>ant clean???????????????? Clean.</echo>
          ??? ??? <echo>ant help????????????????? Display this help message.</echo>
          ??? ??? <echo>${env.JBOSS_HOME}</echo><!-- 輸出系統(tǒng)的JBOSS_HOME變量 -->
          ??? ??? <echo>${url}</echo><!-- 輸出外部屬性文件的屬性 -->
          ??? ??? <echo>ant input???????????????? Input.</echo>
          ??? </target>

          ??? <target name="show-img"><!-- 顯示圖片,URL好像不是這樣設置的 -->
          ??? ??? <splash imageurl="tomcat-power.gif"
          ?????????? useproxy="false"
          ?????????? showduration="2000"/>
          ??? ??? <splash/> <!-- Splash images/ant_logo_large.gif from the classpath. -->
          ??? </target>
          </project>
          posted @ 2007-02-11 17:11 ALin 閱讀(333) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 慈溪市| 安岳县| 万宁市| 佛学| 上思县| 凉山| 长兴县| 定陶县| 江永县| 边坝县| 石阡县| 营山县| 固原市| 萨嘎县| 马龙县| 宾阳县| 龙门县| 湖口县| 凌源市| 南丹县| 鄄城县| 高尔夫| 韶关市| 正定县| 拜城县| 宜丰县| 班玛县| 三门县| 贵阳市| 开鲁县| 三台县| 哈密市| 河间市| 福州市| 东安县| 连州市| 府谷县| 淳化县| 盐池县| 工布江达县| 乐亭县|