Natural

           

          [ant]使用ant構建自動化樣例

          通過ant來實現項目的自動化構建。
          只要寫一下構建文件(bulid.xml),即可自動完成你預定的任務,例如對java源代碼進行編譯、測試、打包、生成文檔等。ant還可以通過ant插件實現很多應用的調用。

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

            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" />        <!-- 測試報告 -->
            7 <property name="classes.dir"     value="classes" />        <!-- 編譯后class文件 -->
            8 <property name="lib.dir"         value="lib" />            <!-- 要運用的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目錄下面的無用測試報告文件</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 <!-- 初始化任務 -->
           41 <target name="init" depends="delete">
           42     <echo message="下面開始初始化任務 ${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 <!-- 測試 -->
           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"/>  <!--如果沒有設置formatter,將無法打印出詳細的信息--> 
           65         <formatter type="plain" /><!--默認usefile為true,將會自動創建txt文件-->
           66         <formatter type="xml" />
           67     </junit>
           68 </target>
           69 
           70 <!--根據指定文件夾中的.xml文件生成html格式的測試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 此號已被刪 閱讀(498) 評論(0)  編輯  收藏 所屬分類: 腳本

          導航

          統計

          常用鏈接

          留言簿(8)

          隨筆分類(83)

          隨筆檔案(78)

          文章檔案(2)

          相冊

          收藏夾(7)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 青神县| 吉林市| 赣榆县| 通许县| 海安县| 进贤县| 鸡西市| 呼图壁县| 民县| 辉县市| 天津市| 镇沅| 洪洞县| 铁岭市| 临江市| 中阳县| 邯郸市| 林芝县| 霸州市| 双流县| 海丰县| 孙吴县| 正宁县| 湘乡市| 泉州市| 玉田县| 盘锦市| 通州区| 三门峡市| 洪泽县| 祥云县| 静海县| 襄樊市| 江门市| 木里| 科技| 乌兰察布市| 兰州市| 黄大仙区| 堆龙德庆县| 水城县|