`
kiki1120
  • 浏览: 315956 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Ant的例子—编译/打包/报表/email /DOC/测试

阅读更多

<!--author:黄庆飞 ; date:2006.7 http://hqflysky.spaces.msn.com/-->


<?xml version="1.0"?>
<project name="sunpkcs11" default="help" basedir=".">
 <!-- properies -->
 <property name="src.dir" value="src" />
 <property name="report.dir" value="report" />
 <property name="classes.dir" value="bin" />
 <property name="lib.dir" value="lib" />
 <property name="dist.dir" value="packoutput" />
 <property name="doc.dir" value="doc" />
 <property name="test.dir" value="testcases" />
 <property name="jre.dir" value="D:/winxp program/JBuilderX/jdk1.5/jre/lib" />
 <property name="eclipse_plugins.dir" value="D:/winxp program/eclipse/plugins" />
 <property environment="env"/>
 <property name="java.home" value="${env.JAVA_HOME}"/>
 <property name="ant.home"  value="${env.ANT_HOME}"/>
 <property name="java.home" value="${system.dir}"/>
 <!-- 定义classpath -->
 <path id="master-classpath">
  <fileset file="${lib.dir}" id="mylib">
   <include name="lib/mail.jar" />
   <include name="lib/activation.jar" />
   <include name="lib/bcprov-jdk15-131.jar" />
   <include name="lib/jdom.jar" />
   <include name="lib/mssqlserver.jar" />
   <include name="lib/msutil.jar" />
   <include name="lib/msbase.jar" />
   <include name="lib/junit.jar" />
   <include name="lib/jaxp/*.jar" />
  </fileset>
 </path>
 <path id="plusin-classpath">
  <fileset file="${eclipse_plugins.dir}" id="pluslib">
   <include name="${eclipse_plugins.dir}/org.junit_3.8.1/*.*" />
  </fileset>
 </path>
 <!-- 初始化任务 -->
 <target name="init" description="initialize global parameter...">
  <echo> 初始化开始 </echo>
  <available property="junit.present" classname="junit.framework.TestCase" />
  <echo> 初始化结束  </echo>
 </target>
 <target name="welcome" description="WelCome, Show System Information...">
  <echo message="系统基本配置信息"/>
  <echo message="Number of Processors = ${env.NUMBER_OF_PROCESSORS}"/>
  <echo message="ANT_HOME is set to = ${ant.home}"/>
  <echo message="JAVA__HOME is set to = ${java.home}"/>
 </target>
 <!-- 编译 -->
 <target name="compile" depends="init" description="compile the source files">
  <echo> 编译开始 </echo>
  <mkdir dir="${classes.dir}" />
  <javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.5">
   <classpath refid="master-classpath" />
   <exclude name="test/*.java"/>
  </javac>
  <echo> 编译结束 </echo>
 </target>
 <!-- 打包成jar -->
 <target name="pack" depends="compile" description="make .jar file">
  <echo> 开始打包jar </echo>
  <mkdir dir="${dist.dir}" />
  <jar destfile="${dist.dir}/hqfAPI.jar" basedir="${classes.dir}">
   <exclude name="**/*build*.*" />
  </jar>

  <!-- 复制用到的库 -->
  <mkdir dir="${dist.dir}/lib" />
  <copy todir="${dist.dir}">
   <fileset refid="mylib" />
  </copy>
  <!-- 复制本地化文件 -->
  <!--copy todir="${dist.dir}" file="${swt.dll}"/-->
  <echo> 结束打包jar </echo>
 </target>
 
 <!--  测试初始化 -->
 <target name="test-init" depends="pack" description="initialiaze local directory before junit test...">
  <echo message="测试初始化---开始"/>
  <delete dir="${test.dir}" />
  <mkdir dir="${test.dir}"/>
  <delete dir="${report.dir}" />
     <mkdir dir="${report.dir}"/> 
  <echo message="测试初始化---结束"/>
 </target>

 <!--编译测试组-->
 <target name="compiletests" depends="test-init" description="compile junit test class...">
  <echo message="编译测试组开始"/>
  <javac srcdir="${src.dir}/test" destdir="${test.dir}" target="1.5">
   <classpath refid="master-classpath" />
   <classpath id="winxp_lib">
    <pathelement path="${dist.dir}/hqfAPI.jar"/>
   </classpath>
   <include name="**.*"/>
  </javac>
  <jar destfile="${dist.dir}/testall.jar" basedir="${test.dir}">
  </jar>
  <echo message="编译测试组结束"/>
 </target>
 <!--  运行junit  -->
 <target name="runtests" depends="compiletests" description="run junit test suit and build a report about it...">
  <echo message="run test开始" />
  <junit printsummary="true" haltonfailure="true" fork="yes">
   <classpath refid="master-classpath" />
   <classpath>
    <pathelement location="${dist.dir}/*.jar" />
    <pathelement location="${test.dir}/test/*.*" />
    <pathelement path="" />
   </classpath>
   <classpath>
    <pathelement path="${dist.dir}/hqfAPI.jar"/>
   </classpath>
   <formatter type="plain"/>
   <test name="test.testall" haltonfailure="no" outfile="${report.dir}/result">
       <formatter type="xml"/>
   </test>
  </junit> 
  <echo message="run test结束" />
 
  <echo message="自动生成测试报表开始"/>
  <junitreport todir="${report.dir}">
   <fileset dir="${report.dir}">
    <include name="*.xml" />
   </fileset>
   <report format="frames" todir="${report.dir}/html" />   
  </junitreport>
  <echo message="自动生成测试报表结束"/>
 </target>
 
 <!--压缩report成zip文件-->
 <target name ="zip" description ="zip the report files...">
  <zip destfile="${report.dir}/reports.zip">
     <zipfileset dir="${report.dir}/html" prefix=""/>     
   </zip>
    </target>
 
 
 <!--将zip文件发送email-->
 <target name ="mail" description ="mail the zip report file to the manager...">
 <mail mailhost="smtp.tom.com" mailport="25" subject="Test build" user="XXX" password="XXX"  charset="utf-8" messagemimetype="multipart/mixed">
   <from name="XXX" address="
XXX@tom.com"/>
   <to name="XXX" address="
XXX@sina.com"/>
   <cc name="XXX" address="
XXX@sina.com"/>
   <bcc name="XXX" address="
XXX@21cn.com"/
   <message>The nightly build has completed</message>
   <fileset dir="${report.dir}">
     <include name="reports.zip"/>
   </fileset>
 </mail>
 </target> 
 
 <!-- 输出api文档  -->

 <target name="doc"  description="create api doc">
     <echo message="正在更新api文档"/>
  
  <delete dir="${doc.dir}" />
  <mkdir dir="${doc.dir}" />
  <javadoc destdir="${doc.dir}" author="true" version="true" use="true" windowtitle="HQF API">
   <packageset dir="${src.dir}" defaultexcludes="yes">
    <include name="com/hqf/security/**" />
    <include name="com/hqf/email/**" />
    <include name="com/hqf/http/**" />
    <include name="com/hqf/test/**" />
   </packageset>
   <doctitle>
    <![CDATA[<h1>XXX GEDIP API</h1>]]></doctitle>
  <bottom>
   <![CDATA[<i>XXXAll Rights Reserved.</i>]]></bottom>
        <tag name="todo" scope="all" description="To do:" />
  </javadoc>
  <echo message="更新api文档结束"/>
 </target>
 
 <target name="help" description="show help">
  <echo message="Build the usage_example project"/>
  <echo message="Usage: ant [ant options] [target1]\
  [target2 | target3 | ... ]"/>
  <echo message=""/>
  <echo message=" build-lib - build just the project's library"/>
  <echo message=" build-app - build the library and \
 the application"/>
  <echo message=" deploy-app - ready the \
 application for deployment"/>
  <echo message=" makedoc - generate all the \
 documentation for the project"/>
  <echo message=" -projecthelp - (An Ant option) Display all \
 target descriptions"/>
 </target>
</project>

 

<!--author:黄庆飞 ; date:2006.7-->

 

 

 

分享到:
评论

相关推荐

    通过ant脚本,编译打包android工程

    通过ant脚本,编译打包android工程。 编译打包android工程的ant脚本,Android官方提供的打包脚本。 有注释

    ant打包编译全套资料

    "ant案例"涵盖了各种实际场景的应用,比如如何配置Ant来编译Java项目、打包JAR文件、生成WAR文件以部署到Web服务器,甚至如何执行单元测试、代码覆盖率分析等。通过实际操作案例,可以更直观地学习Ant的工作原理和...

    使用Ant编译打包

    Ant使用XML来描述构建过程,包括编译、测试、打包和部署等任务,使得开发者能够通过简单的脚本进行项目构建,而无需深入理解复杂的命令行语法。 **一、Ant的安装与配置** 1. **下载与解压**:首先,你需要从Apache...

    Ant打包编译部署工具学习笔记2(附件中含有测试项目)

    在"Ant打包编译部署工具学习笔记2"中,我们可以预期博主分享了关于如何利用Ant进行更复杂的构建操作,例如集成测试、优化和打包。这可能包括如何配置build.xml文件,添加自定义任务,以及如何处理依赖关系。由于没有...

    ANDROID_ANT自动编译打包签名教程

    ### ANDROID_ANT自动编译打包签名教程 #### 一、前言 随着移动应用开发的不断深入和技术迭代,为了提高开发效率与版本发布的便捷性,自动化构建工具的应用变得尤为重要。ANT作为一款开源的Java编译工具,在Android...

    ant递归编译测试源码

    在Java开发过程中,构建工具是不可或缺的一部分,它们帮助开发者自动化执行任务,如编译、测试、打包等。Ant是Apache组织提供的一款强大的构建工具,它使用XML来描述项目构建过程,具有灵活性和可扩展性。本篇将深入...

    ant脚本编译jar

    在Java项目中,`Ant`常用于编译源代码、生成文档、打包、测试等任务。`JAR`(Java Archive)文件则是Java平台的标准归档格式,用于封装类文件、资源文件和元数据,便于分发和执行。 首先,我们需要了解`Ant`脚本的...

    使用ant编译打包应用程序

    Ant是一个基于XML的构建工具,它允许开发者定义任务来自动化构建过程,如编译源代码、创建JAR文件、运行测试等。 首先,我们来看源文件`Sample.java`,它包含一个主类`Sample`,使用了`javax.swing.JOptionPane`来...

    .Ant安装编译操作手册

    - **编写目的**:本文档旨在指导软件发布人员如何正确安装与配置Apache Ant,解决在安装与使用过程中可能遇到的问题,确保能够顺利地使用Ant对Flex/Java工程项目进行自动化编译与打包。 #### 二、环境说明 - **Ant...

    Ant1.8.2 编译打包工具

    - **打包**:Ant支持将编译后的类文件打包成JAR、WAR或EAR文件,方便部署。 - **部署**:可以将打包后的应用上传到远程服务器,或者在本地文件系统中移动。 - **清理**:清除编译过程中产生的临时文件和目标目录,...

    ant编译java工程

    在Java开发中,Ant常用于自动化编译、测试、打包和部署等任务。 首先,Ant的核心是构建文件`build.xml`,它包含了构建过程的所有指令。这个文件定义了目标(target)和任务(task),每个目标都是一个具体的构建...

    利用Ant自动编译Flex程序

    ${flex.sdk}/ant/lib/flexTasks.jar"/&gt; &lt;mxmlc file="src/Main.mxml"&gt; ${flex.sdk}/frameworks/flex-config.xml"/&gt; ${flex.sdk}/src"/&gt; &lt;source-path path-element="src"/&gt; &lt;output file="bin/Main.swf"/&gt;...

    ANT配置,打包,编译

    ANT配置,打包,编译

    Ant编译打包android工程流程

    ### Ant编译打包Android工程流程详解 #### 一、Ant编译打包步骤 在深入了解Ant如何帮助我们构建Android项目之前,我们先来了解整个编译打包的过程。 1. **使用aapt为项目资源生成R.java文件** - **工具介绍**:...

    SVN+ant 服务器代码打包编译流程详解,内含详细安装以及操作说明

    在build.xml文件中,你可以定义构建任务,如编译源码、打包JAR、执行测试等。 build.xml是Ant的核心,它是构建过程的蓝图。例如,你可以定义一个target元素来表示一个特定的构建步骤,如`&lt;target name="compile"&gt;`...

    用ANT来编译打包Eclipse插件

    当应用hudson一类的自动化平台来构建Eclipse插件时,不能直接调用ANT工具来编译。本工具自动修改Eclipse的路径为 ${ECLIPSE_HOME},并且自动可查找相应插件。 使用方法: java -jar buildfileGenerator.jar build....

    android编译与ant打包

    在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。本文介绍了android编译和ant打包原理

    编译打包工具-Ant

    Ant 的概念是当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,于是需要一个流程脚本引擎来自动化调用程序完成项目的编译,打包,测试等。Ant 就是这样一个流程脚本引擎,用于自动化...

    Powershell(脚本) Ant(编译)实现一键打包

    - **Ant简介**:Ant是一个开源的Java构建工具,它能够将软件开发中的各种任务(如编译、测试、部署)自动化,大大简化了开发过程。Ant通过读取XML格式的构建文件(通常是`build.xml`)来执行一系列预定义的任务。 -...

Global site tag (gtag.js) - Google Analytics