zoukankan      html  css  js  c++  java
  • ant工具

      一个ant文件,就是一个build.xml文件。

           Ant就是一个Java超级的批处理库。用xml定义.

    每个ant脚本(缺省叫build.xml)中设置了一系列任务(target):比如对于一个一般的项目可能需要有以下任务。
    * 任务1:usage 打印本脚本的帮助信息(缺省)
    * 任务2:clean <-- init 清空初始化环境
    * 任务3:javadoc <-- build <-- init 生成JAVADOC
    * 任务4:jar <-- build <-- init 生成JAR
    * 任务5:all <-- jar + javadoc <-- build <-- init 完成以上所有任务:jar javadoc
     
     
    1.<project>标签
    每个构建文件对应一个项目。<project>标签时构建文件的根标签。它可以有多个内在属性,就如代码中所示,其各个属性的含义分别如下。
    (1) default表示默认的运行目标,这个属性是必须的。
    (2) basedir表示项目的基准目录。
    (3) name表示项目名。
    (4) description表示项目的描述。
    每个构建文件都对应于一个项目,但是大型项目经常包含大量的子项目,每一个子项目都可以有自己的构建文件。
    2.<target>标签
    一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target标签。
    例如,有一个target用于编译程序,另一个target用于生成可执行文件。在生成可执行文件之前必须先编译该文件,因此可执行文件的target依赖于编译程序的target。Target的所有属性如下。
    (1).name表示标明,这个属性是必须的。
    (2).depends表示依赖的目标。
    (3)if表示仅当属性设置时才执行。
    (4)unless表示当属性没有设置时才执行。
    (5)description表示项目的描述。
    Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序 依次执行每个target。在执行之前,首先需要执行它所依赖的target。程序中的名为run的target的depends属性compile,而 名为compile的target的depends属性是prepare,所以这几个target执行的顺序是 prepare->compile->run。
    一个target只能被执行一次,即使有多个target依赖于它。如果没有if或unless属性,target总会被执行。
    3.<mkdir>标签
    该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名,其代码如下:
    <mkdir dir=”${class.root}”/>
    通过以上代码就创建了一个目录,这个目录已经被前面的property标签所指定。
    4<jar>标签
    该标签用来生成一个JAR文件,其属性如下。
    (1) destfile表示JAR文件名。
    (2) basedir表示被归档的文件名。
    (3) includes表示被归档的文件模式。
    (4) excludes表示被排除的文件模式。
    5.<javac标签>
    该标签用于编译一个或一组java文件,其属性如下。
    (1).srcdir表示源程序的目录。
    (2).destdir表示class文件的输出目录。
    (3).include表示被编译的文件的模式。
    (4).excludes表示被排除的文件的模式。
    (5).classpath表示所使用的类路径
    (6).debug表示包含的调试信息。
    (7).optimize表示是否使用优化。
    (8).verbose 表示提供详细的输出信息。
    (9).fileonerror表示当碰到错误就自动停止。
    6.<java>标签
    该标签用来执行编译生成的.class文件,其属性如下。
    (1).classname 表示将执行的类名。
    (2).jar表示包含该类的JAR文件名。
    (3).classpath所表示用到的类路径。
    (4).fork表示在一个新的虚拟机中运行该类。
    (5).failonerror表示当出现错误时自动停止。
    (6).output 表示输出文件。
    (7).append表示追加或者覆盖默认文件。
    7.<delete>标签
    该标签用于删除一个文件或一组文件,其属性如下。
    (1)/file表示要删除的文件。
    (2).dir表示要删除的目录。
    (3).includeEmptyDirs 表示指定是否要删除空目录,默认值是删除。
    (4).failonerror 表示指定当碰到错误是否停止,默认值是自动停止。
    (5).verbose表示指定是否列出所删除的文件,默认值为不列出。
    8.<copy>标签
    该标签用于文件或文件集的拷贝,其属性如下。
    (1).file 表示源文件
    (2).tofile 表示目标文件。
    (3).todir 表示目标目录。
    (4).overwrite 表示指定是否覆盖目标文件,默认值是不覆盖。
    (5).includeEmptyDirs 表示制定是否拷贝空目录,默认值为拷贝。
    (6).failonerror 表示指定如目标没有发现是否自动停止,默认值是停止。
    (7).verbose 表示制定是否显示详细信息,默认值不显示。
     
     1 在根目录下创建build.xml文件,输入以下内容:
     2 
     3     <?xml version="1.0"?>
     4     <project name="Hello world" default="doc">
     5 
     6     <!-- properies -->
     7          <property name="src.dir" value="src" />
     8          <property name="report.dir" value="report" />
     9          <property name="classes.dir" value="classes" />
    10          <property name="lib.dir" value="lib" />
    11          <property name="dist.dir" value="dist" />
    12     <property name="doc.dir" value="doc"/>
    13 
    14          <!-- 定义classpath -->
    15          <path id="master-classpath">
    16              <fileset file="${lib.dir}/*.jar" />
    17              <pathelement path="${classes.dir}"/>
    18          </path>
    19 
    20          <!-- 初始化任务 -->
    21          <target name="init">
    22          </target>
    23 
    24          <!-- 编译 -->
    25          <target name="compile" depends="init" description="compile the source files">
    26              <mkdir dir="${classes.dir}"/>
    27              <javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.4">
    28                  <classpath refid="master-classpath"/>
    29              </javac>
    30          </target>
    31 
    32          <!-- 测试 -->
    33          <target name="test" depends="compile" description="run junit test">
    34              <mkdir dir="${report.dir}"/>
    35              <junit printsummary="on"
    36                      haltonfailure="false"
    37                      failureproperty="tests.failed"
    38                      showoutput="true">
    39                  <classpath refid="master-classpath" />
    40                  <formatter type="plain"/>
    41                  <batchtest todir="${report.dir}">
    42                      <fileset dir="${classes.dir}">
    43                          <include name="**/*Test.*"/>
    44                      </fileset>
    45                  </batchtest>
    46              </junit>
    47              <fail if="tests.failed">
    48              ***********************************************************
    49              ****   One or more tests failed!   Check the output ...   ****
    50              ***********************************************************
    51              </fail>
    52          </target>
    53 
    54          <!-- 打包成jar -->
    55          <target name="pack" depends="test" description="make .jar file">
    56           <mkdir dir="${dist.dir}" />
    57              <jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}">
    58                  <exclude name="**/*Test.*" />
    59                  <exclude name="**/Test*.*" />
    60              </jar>
    61          </target>
    62 
    63          <!-- 输出api文档 -->
    64          <target name="doc" depends="pack" description="create api doc">
    65           <mkdir dir="${doc.dir}" />
    66           <javadoc destdir="${doc.dir}"
    67                  author="true"
    68                  version="true"
    69                  use="true"
    70                  windowtitle="Test API">
    71                  <packageset dir="${src.dir}" defaultexcludes="yes">
    72                      <include name="example/**" />
    73                  </packageset>
    74                  <doctitle><![CDATA[<h1>Hello, test</h1>]]></doctitle>
    75                  <bottom><![CDATA[<i>All Rights Reserved.</i>]]></bottom>
    76                  <tag name="todo" scope="all" description="To do:" />
    77              </javadoc>
    78          </target>
    79     </project>
    80 
    81 以上xml依次定义了init(初始化),compile(编译),test(测试),doc(生成文档),pack(打包)任务,可以作为模板
  • 相关阅读:
    解决PKIX:unable to find valid certification path to requested target 的问题
    Linux 上的常用文件传输方式介绍与比较
    用VNC远程图形化连接Linux桌面的配置方法
    红帽中出现”This system is not registered with RHN”的解决方案
    linux安装时出现your cpu does not support long mode的解决方法
    CentOS SSH配置
    es6扩展运算符及rest运算符总结
    es6解构赋值总结
    tortoisegit安装、clon、推送
    es6环境搭建
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4161669.html
Copyright © 2011-2022 走看看