Natural

           

          [ant]使用ant構(gòu)建自動(dòng)化樣例

          通過ant來實(shí)現(xiàn)項(xiàng)目的自動(dòng)化構(gòu)建。
          只要寫一下構(gòu)建文件(bulid.xml),即可自動(dòng)完成你預(yù)定的任務(wù),例如對(duì)java源代碼進(jìn)行編譯、測(cè)試、打包、生成文檔等。ant還可以通過ant插件實(shí)現(xiàn)很多應(yīng)用的調(diào)用。

          ant樣例:
          1、在eclipse建立一個(gè)java項(xiàng)目:antExample
          2、創(chuàng)建lib文件夾,junit.jar放在下面
          3、創(chuàng)建一個(gè)包:com
          4、該包下創(chuàng)建一個(gè)類:HelloAnt.java
          5、該包下創(chuàng)建一個(gè)junit測(cè)試類:HelloAntTest.java
          6、項(xiàng)目根目錄下創(chuàng)建一個(gè)build.xml文件,其內(nèi)容如下:

            1 <?xml version="1.0"?>
            2 <project name="antExample" default="doc">
            3 
            4 <!-- properies -->
            5 <property name="src.dir"         value="src" />            <!-- 源代碼 -->
            6 <property name="report.dir"     value="report" />        <!-- 測(cè)試報(bào)告 -->
            7 <property name="classes.dir"     value="classes" />        <!-- 編譯后class文件 -->
            8 <property name="lib.dir"         value="lib" />            <!-- 要運(yùn)用的jar文件 -->
            9 <property name="dist.dir"         value="dist" />            <!-- 打包后的jar文件 -->
           10 <property name="doc.dir"         value="doc"/>            <!-- API文檔 -->
           11 <property name="jar.file.name"        value="test1.jar"/>        <!-- 打包后生成的jar文件的文件名 -->
           12 <!-- manifest清單的屬性 -->
           13 <property name="jar.manifest.version"     value="1.0"/>
           14 <property name="jar.manifest.created-by"     value="jdk1.6.0_05"/>
           15 <property name="jar.manifest.main-class"     value="com/HelloAnt"/>
           16 <property name="jar.manifest.class-path"     value=""/>
           17     
           18 <property name="jdk.version"     value="1.6"/>
           19     
           20 <!-- 定義classpath -->
           21 <path id="master-classpath">
           22     <fileset dir="${lib.dir}">
           23         <include name="*.jar"/>
           24     </fileset>
           25     <pathelement path="${classes.dir}"/>
           26 </path>
           27 
           28 <target name="delete">  
           29     <echo>刪除classes目錄下面的無用文件</echo>  
           30     <delete dir="${classes.dir}"></delete>  
           31     <echo>刪除dist目錄下面的無用jar文件</echo>  
           32     <delete dir="${dist.dir}"></delete>
           33     <echo>刪除reprot目錄下面的無用測(cè)試報(bào)告文件</echo>  
           34     <delete dir="${report.dir}"></delete>  
           35     <echo>刪除doc目錄下面的無用java文檔</echo>  
           36     <delete dir="${doc.dir}"></delete>  
           37     <echo>清除完畢</echo>  
           38 </target>  
           39 
           40 <!-- 初始化任務(wù) -->
           41 <target name="init" depends="delete">
           42     <echo message="下面開始初始化任務(wù) ${src.dir}"></echo>
           43 </target>
           44 
           45 <!-- 編譯 -->
           46 <target name="compile" depends="init" description="compile the source files">
           47     <mkdir dir="${classes.dir}"/>
           48     <javac srcdir="${src.dir}" destdir="${classes.dir}" target="${jdk.version}">
           49         <classpath refid="master-classpath"/>
           50     </javac>
           51 </target>
           52 
           53 <!-- 測(cè)試 -->
           54 <target name="test" depends="compile" description="run junit test">
           55     <mkdir dir="${report.dir}"/>
           56 
           57     <junit printsummary="on">
           58         <classpath refid="master-classpath" />
           59         <batchtest fork="true" todir="${report.dir}">
           60             <fileset dir="${src.dir}">
           61                 <include name="**/*Test.*"/>
           62             </fileset>
           63         </batchtest>
           64         <formatter type="brief" usefile="true"/>  <!--如果沒有設(shè)置formatter,將無法打印出詳細(xì)的信息--> 
           65         <formatter type="plain" /><!--默認(rèn)usefile為true,將會(huì)自動(dòng)創(chuàng)建txt文件-->
           66         <formatter type="xml" />
           67     </junit>
           68 </target>
           69 
           70 <!--根據(jù)指定文件夾中的.xml文件生成html格式的測(cè)試report-->
           71 <target name="report" depends="test">
           72     <junitreport todir="${report.dir}" >
           73         <fileset dir="${report.dir}">
           74             <include name="TEST-*.xml" />                      
           75        </fileset>
           76        <report format="frames" todir="${report.dir}" />
           77     </junitreport>
           78 </target>
           79     
           80 <!-- 打包成jar -->
           81 <target name="pack" depends="report" description="make .jar file">
           82 <mkdir dir="${dist.dir}" />
           83 <jar destfile="${dist.dir}/${jar.file.name}" basedir="${classes.dir}">
           84 <manifest>
           85     <attribute name="Manifest-Version" value="${jar.manifest.version}"/>
           86     <attribute name="Created-By" value="${jar.manifest.created-by}"/>
           87     <attribute name="Main-Class" value="${jar.manifest.main-class}"/>
           88     <attribute name="Class-Path" value="${jar.manifest.class-path}"/>
           89 </manifest>
           90 <exclude name="**/*Test.*" />
           91 <exclude name="**/Test*.*" />
           92 </jar>
           93 </target>
           94 
           95 <!-- 輸出api文檔 -->
           96 <target name="doc" depends="pack" description="create api doc">
           97     <mkdir dir="${doc.dir}" />
           98     <javadoc 
           99         sourcepath="${src.dir}"
          100         packagenames="com.*"
          101         destdir="${doc.dir}" 
          102         author="true" 
          103         version="true" 
          104         use="true" 
          105         splitindex="true"
          106         linksource="false"
          107         windowtitle="antExample API">
          108         <doctitle><![CDATA[<h1>antExample project</h1>]]></doctitle>
          109         <bottom><![CDATA[<i>All Rights Reserved.</i>]]></bottom>
          110     </javadoc>
          111 </target>
          112     
          113 </project>



          posted on 2010-08-11 11:45 此號(hào)已被刪 閱讀(506) 評(píng)論(0)  編輯  收藏 所屬分類: 腳本

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(8)

          隨筆分類(83)

          隨筆檔案(78)

          文章檔案(2)

          相冊(cè)

          收藏夾(7)

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 灵山县| 洮南市| 湘阴县| 昌黎县| 礼泉县| 灵璧县| 敦煌市| 崇阳县| 都兰县| 尼勒克县| 周至县| 浪卡子县| 阿克陶县| 绥德县| 房产| 南木林县| 昆明市| 黄石市| 广水市| 磴口县| 体育| 淮滨县| 东辽县| 甘谷县| 井冈山市| 焉耆| 沐川县| 芜湖市| 砚山县| 阜宁县| 通海县| 衡水市| 齐河县| 九寨沟县| 任丘市| 鞍山市| 张家港市| 兰考县| 沙洋县| 邵东县| 济源市|