從制造到創(chuàng)造
          軟件工程師成長(zhǎng)之路
          posts - 292,  comments - 96,  trackbacks - 0

          一、構(gòu)建Ant環(huán)境
          免安裝構(gòu)建:如果你已經(jīng)配置好Eclipse環(huán)境(3.0以上),那Ant環(huán)境就已經(jīng)構(gòu)建好了;
          ②從零開(kāi)始手工配置:
          A:配置好Java環(huán)境;
          安裝JDK,然后設(shè)置好環(huán)境變量,如:

          Java 環(huán)境配置
          Java安裝目錄:E:\Java\jdk1.5.0_12
          在“系統(tǒng)”-》“高級(jí)”-》“環(huán)境變量”-》“系統(tǒng)參數(shù)”中
          1、新增JAVA_HOME:
          變量名:JAVA_HOME
          變量值:E:"Java\jdk1.5.0_12
          2、新增CLASSPATH:
          變量名:CLASSPATH
          變量值:.;%JAVA_HOME%\lib\tool.jar;%JAVA_HOME%\lib\dt.jar;
          3、在Path變量中增加Java的bin目錄
          已存在的變量名:Path
          在最前面新增的值:.;%JAVA_HOME%\bin;

                          B、下載Ant包:
          地址:http://ant.apache.org/bindownload.cgi
          配置Ant環(huán)境變量:

          Ant 環(huán)境配置
          Ant安裝目錄:D:\ant
          在“系統(tǒng)”-》“高級(jí)”-》“環(huán)境變量”-》“系統(tǒng)參數(shù)”中
          1、新增ANT_HOME:
          變量名:ANT_HOME
          變量值:D:\ant
          2、在Path變量中增加Ant的bin目錄
          已存在的變量名:Path
          在最前面新增的值:.;%ANT_HOME%"bin;

           測(cè)試:run-》cmd,輸入ant,如果出現(xiàn)下面的畫(huà)面,測(cè)表明Ant環(huán)境已經(jīng)配置好了。



          二、簡(jiǎn)單上手:
          build.xml

          <?xml version="1.0"?>
          <project default="main" basedir=".">
          <target name="main">
          <javac srcdir="src\main\hello\ant" destdir="bin"/>

          <java classname="main.hello.ant.HelloAnt">
          <classpath>
          <pathelement path="bin" />
          </classpath>
          </java>
          </target>
          </project>


          HelloAnt.java

          package main.hello.ant;

          public class HelloAnt {
          public static void main(String[] args) {
          System.out.println(
          "Hello World From HelloAnt!");
          }
          }

          目錄結(jié)構(gòu):



          運(yùn)行結(jié)果:

           

          三、Ant提高

          改進(jìn)build.xml,讓它做更多的事情:
          定義全局變量
          初始化,主要是建立目錄
          編譯(已有)
          打包為jar
          建立API documentation
          生成 發(fā)布(distribution) 產(chǎn)品


          build.xml
          <?xml version="1.0" encoding="UTF-8" ?>
          <project default="dist" basedir=".">
          <!-- 主要的系統(tǒng)環(huán)境屬性 -->
          <!-- 取Window,Unix的環(huán)境變量 -->
          <property environment="env" />
          <property name="java.home" value="${env.JAVA_HOME}" />
          <property name="ant.home" value="${env.ANT_HOME}" />

          <!-- 主要的app環(huán)境屬性 -->
          <property name="app.name" value="hello-ant" />
          <property name="app.jar" value="${app.name}.jar" />
          <property name="app.copyright" value=" Copyright(c) 2007 CoderDream's Studio All rights reserved." />

          <!-- app中的src屬性 -->
          <property name="src.dir" value="src" />
          <property name="src.main" value="${src.dir}/main" />
          <property name="src.script" value="${src.dir}/script" />

          <!-- app用到的lib -->
          <property name="lib.dir" value="lib" />

          <!-- app的build目錄中 -->
          <property name="build.dir" value="build" />
          <property name="build.classes" value="${build.dir}/classes" />
          <property name="build.docs" value="${build.dir}/doc" />
          <property name="build.docs.api" value="${build.docs}/api" />
          <property name="build.lib" value="${build.dir}/lib" />

          <!-- app的dist(distribution發(fā)布)目錄中 -->
          <property name="dist.dir" value="dist" />
          <property name="dist.bin" value="${dist.dir}/bin" />
          <property name="dist.docs" value="${dist.dir}/docs" />
          <property name="dist.lib" value="${dist.dir}/lib" />

          <!-- app的docs目錄中 -->
          <property name="docs.dir" value="docs" />

          <property name="report" value="report" />

          <path id="classpath">
          <pathelement location="${build.classes}" />
          <pathelement path="${java.home}/lib/tools.jar" />
          </path>

          <target name="init">
          <!-- 清除以前的目錄 -->
          <delete dir="${build.dir}" failonerror="false" />
          <delete dir="${dist.dir}" failonerror="false" />

          <!-- 準(zhǔn)備目錄 -->
          <mkdir dir="${build.dir}" />
          <mkdir dir="${build.classes}" />
          <mkdir dir="${build.docs}" />
          <mkdir dir="${build.docs.api}" />
          <mkdir dir="${build.lib}" />
          <mkdir dir="${dist.dir}" />
          <mkdir dir="${dist.bin}" />
          <mkdir dir="${dist.lib}" />
          </target>

          <target name="build" depends="init">
          <javac srcdir="${src.dir}" destdir="${build.classes}">
          <classpath refid="classpath" />
          </javac>
          </target>

          <target name="jars" depends="build">
          <jar basedir="${build.classes}" jarfile="${build.lib}/${app.jar}" />
          </target>

          <target name="javadocs" depends="jars" description="-> creates the API documentation">
          <!-- copy docs 手冊(cè) -->
          <copy todir="${build.docs}">
          <fileset dir="${docs.dir}" />
          </copy>

          <javadoc     packagenames="main.hello.ant.*" 
          sourcepath
          ="${src.dir}" 
          defaultexcludes
          ="yes" 
          destdir
          ="${build.docs.api}" 
          author
          ="true" 
          version
          ="true" 
          use
          ="true" 
          windowtitle
          ="Docs API">
          <doctitle>
          <![CDATA[<h1>hello and Docs API</h1>]]>
          </doctitle>
          <bottom>
          <![CDATA[<i>${app.copyright}</i>]]>
          </bottom>
          <tag name="todo" scope="all" description="To do:" />
          </javadoc>
          </target>

          <target name="dist" depends="javadocs">
          <!-- copy bin 執(zhí)行文件 -->
          <copy todir="${dist.bin}">
          <fileset dir="${src.script}/" />
          </copy>

          <!-- copy doc 執(zhí)行文件 -->
          <copy todir="${dist.docs}">
          <fileset dir="${build.docs}/" />
          </copy>


          <!-- copy lib 執(zhí)行文件 -->
          <copy todir="${dist.lib}">
          <fileset dir="${build.lib}/" />
          </copy>
          </target>

          <target name="junitreport" depends="build">
          <junit printsummary="true" failureproperty="tests.failed">
          <test name="main.hello.ant.TestHelloAnt"/>
          <classpath>
          <pathelement location="${build.classes}"/>
          </classpath>
          </junit>

          <junitreport todir="${report}">
          <fileset dir="${report}">
          <include name="TEST-*.xml" />
          </fileset>
          <report format="frames" todir="${report}"/>
          </junitreport>

          <fail if="tests.failed">
          --fail!--
          </fail>
          </target>
          </project>

          執(zhí)行結(jié)果:
          1、Console信息:
          Buildfile: E:\XL\workspace\Ant03\build.xml
          init:
          [delete] Deleting directory E:\XL\workspace\Ant03\build
          [delete] Deleting directory E:\XL\workspace\Ant03\dist
          [mkdir] Created dir: E:\XL\workspace\Ant03\build
          [mkdir] Created dir: E:\XL\workspace\Ant03\build\classes
          [mkdir] Created dir: E:\XL\workspace\Ant03\build\doc
          [mkdir] Created dir: E:\XL\workspace\Ant03\build\doc\api
          [mkdir] Created dir: E:\XL\workspace\Ant03\build\lib
          [mkdir] Created dir: E:\XL\workspace\Ant03\dist
          [mkdir] Created dir: E:\XL\workspace\Ant03\dist\bin
          [mkdir] Created dir: E:\XL\workspace\Ant03\dist\lib
          build:
          [javac] Compiling 1 source file to E:\XL\workspace\Ant03\build\classes
          jars:
          [jar] Building jar: E:\XL\workspace\Ant03\build\lib\hello-ant.jar
          javadocs:
          [javadoc] Generating Javadoc
          [javadoc] Javadoc execution
          [javadoc] Loading source files for package main.hello.ant
          [javadoc] Constructing Javadoc information
          [javadoc] Standard Doclet version 1.5.0_12
          [javadoc] Building tree for all the packages and classes
          [javadoc] Building index for all the packages and classes
          [javadoc] Building index for all classes
          [javadoc] Generating E:\XL\workspace\Ant03\build\doc\api\stylesheet.css
          [javadoc] Note: Custom tags that could override future standard tags:  @todo
          To avoid potential overrides, use at least one period character (.) in custom tag names.
          [javadoc] Note: Custom tags that were not seen:  @todo
          dist:
          [copy] Copying 17 files to E:\XL\workspace\Ant03\dist\docs
          [copy] Copying 1 file to E:\XL\workspace\Ant03\dist\lib
          BUILD SUCCESSFUL
          Total time: 
          4 seconds

          2、生成jar文件和docs API


           

          源代碼下載

          參考:
          1、Ant入門(mén)教程
          2、ant使用教程
          3、劉曉濤 第.2.章:.Java就業(yè)特訓(xùn)--2、Java.構(gòu)建工具.ANT 視頻
          posted on 2007-09-18 16:51 CoderDream 閱讀(2272) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): 經(jīng)驗(yàn)點(diǎn)滴

          FeedBack:
          # re: Ant 入門(mén)與提高
          2008-05-14 09:15 | 小帥驚寒
          寫(xiě)的很有道理  回復(fù)  更多評(píng)論
            

          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(9)

          我參與的團(tuán)隊(duì)

          隨筆分類(lèi)(245)

          隨筆檔案(239)

          文章分類(lèi)(3)

          文章檔案(3)

          收藏夾(576)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 458376
          • 排名 - 114

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 凤冈县| 库车县| 鄂托克旗| 商城县| 嘉荫县| 巴中市| 繁峙县| 锦屏县| 新竹市| 正阳县| 阳新县| 上栗县| 上高县| 长岛县| 于都县| 光泽县| 新沂市| 建平县| 高清| 墨竹工卡县| 瓦房店市| 孟连| 左云县| 连南| 阆中市| 邵东县| 诏安县| 杭锦后旗| 册亨县| 大连市| 鄢陵县| 陈巴尔虎旗| 高青县| 开江县| 温泉县| 大连市| 海安县| 庆安县| 克山县| 平湖市| 梨树县|