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 此号已被删 阅读(491) 评论(0)  编辑  收藏 所属分类: 脚本


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(8)

随笔分类(83)

随笔档案(78)

文章档案(2)

相册

收藏夹(7)

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜