zoukankan      html  css  js  c++  java
  • Ant转载一篇 规格严格

     *前言
    Apache Ant是一个基于Java的构建工具。从理论上讲,也是一种类似于Make的工具,只是去除了Make工具的缺点。简单的说,Ant是一个基于Java,并且主要用于Java工程的构建工具。Ant本意是Another Neat Tool,也就是另一种整洁的工具,取首字符就是Ant。

    *下载并安装ant
    1.下载Ant(http://www.apache.org),现在的最新版本是1.7.0,要下载的文件名为apache-ant-1.7.0-bin.zip
    2.解压缩文件,放到指定的系统目录中,例如C:\Program Files\apache-ant-1.7.0
    3.设置系统环境变量path,以便从命令行使用,设置方法为在已有的path值后添加C:\Program Files\apache-ant-1.7.0\bin(注意前面用分毫隔开)
    安装完成后可通过ant -version来查看是否安装成功,在控制台输入ant -version,会显示Apache Ant version 1.7.0 compiled on December 13 2006,表示安装成功
    *使用ant
    1.首先建立一个简单的project,让我们从hello ant!开始吧,该项目名称为FirstAnt,仅包含AntTest一个java文件,main函数的功能就是输出Hello ant! 代码如下:
    package ych.antest;
    public class AntTest
    {    
        public static void main(String[] args)
        {
            System.out.println("Hello ant!");
        }
    }
    2.现在我们开始构建Ant,在d盘创建目录AntTest(命名随意),在AntTest目录下创建目录src(存放项目源代码,把项目的源代码拷到该目录下),在AntTest目录下创建ant的build文件build.xml,build.xml文件的内容如下:
    <?xml version="1.0"?>
    <project name="FirstAnt" default="archive">
      <description>Compiles a simple program named AntTest</description>
      <target name="init" description="create the directories">
        <mkdir dir="classes"/>
        <mkdir dir="dist"/>
      </target>
      <target name="compile" depends="init" description="Compiles the source code">
        <javac srcdir="src" destdir="classes"/>
      </target>
      <target name="archive" depends="compile" description="Creates the JAR file">
        <jar destfile="dist/FirstAnt.jar" basedir="classes"/>
      </target>
      <target name="clean" depends="compile" description="Removes the directories created">
        <delete dir="classes"/>
        <delete dir="dist"/>
      </target>
    </project>
    下面对上述内容做出解释
    每个build.xml文件的结构大体如下:
    <project name="***" default="***">
        <target name="***">
            <***>    //a task,some operation
            <***>    //a task,some operation
        </target>
        <target name="***" depends="***">
            <***>    //a task,some operation
        </target>
        .
        .
        .
    </project>
    <project>就是ant所有构建的项目,name属性为该项目的名称,default是执行ant命令时默认执行的目标
    <target>是ant在构件项目的过程中要执行的一个个目标任务,name属性为该目标的名称,另外,有些<target>有depends属性(值为其他一个或多个<target>的name),表示该target有依赖性,执行之前一定要执行depends中所指定的其他target
    <***>表示某个target所有完成的某个操作,称为task,ant的task操作非常丰富,具体可参见ant文档http://ant.apache.org/manual/index.html
    有了这样一个大概的了解,我们再来看上面具体的build.xml
    <project name="FirstAnt" default="archive">表示项目名称为FirstAnt,并且当在控制台中输入ant命令时(没有参数),默认执行的target是archive(输入ant命令时必须确保目录已转到d:/AntTest目录下),紧跟在project后的description是描述该build.xml所要做的所有事.
      <target name="init" description="create the directories">
        <mkdir dir="classes"/>
        <mkdir dir="dist"/>
      </target>这是一个target单元,表示该target的name是init,description属性描述了该target所要做的事,<mkdir dir="classes"/>是一个名为mkdir的task,表示在当前目录下创建一个classes目录,<mkdir dir="dist"/>依此类推
      <target name="compile" depends="init" description="Compiles the source code">
        <javac srcdir="src" destdir="classes"/>
      </target>这是另一个target单元,表示该target的name是complie,这个target有depends属性,表示执行该target前另一个名为init的target应已执行,<javac srcdir="src" destdir="classes"/>是一个名为javac的task操作,后面是该task所需的属性
    下面的各个target的含义依此类推...
    3.打开控制台,转到的d:/Ant目录下,输入ant,执行完成后,根据build.xml的执行规则,在该目录下会有两个新的目录classes和dist里面分别有对应的class文件和jar文件
    至此,一个ant项目已构建完成。仔细回顾一下,我们发现build.xml文件中名为clean的task并没有被执行,那么如何执行它呢?我们只需用参数调用ant命令即可ant clean,执行完成后,刚刚创建的两个目录被删除。
    再仔细研究一下build.xml,我们得到:首先,一个build.xml文件是有固定结构的(上面已给出);其次,对于project和每个target标签,都有固定名称的属性,这些名称是可选的,但每个属性的值都指定了一个作用;最后,每个他task都有固定的名称和对应的属性,都对应相应的操作,具体在ant文档中指出。
    *总结
    下面是一个build.xml文件的大体操作流程
    从流程中可以看出一般的操作流程是1.创建目录 2.编译项目,创建doc 3.jar打包,或发布到ftp上。
    这篇文章只是一个简单的ant项目实例,更多内容可参见ant文档。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Alend_Yin/archive/2008/03/03/2144407.aspx

    注意:这是我转载的一篇文章,可是这里存在一个问题,生成的jar文件无法运行。

     缺乏main-class声明,所以需要继续研究,看如何将jar的main-class声明打进去。

  • 相关阅读:
    前端面试题
    Less 中的嵌套规则与 & 符号的使用
    组件的生命周期
    222
    221
    twemproxy代理memcache(3)
    memcache数据迁移与解决方案(2)
    mencache的原理与应用(1)
    yield推荐,理解协程的最佳入口
    上下文管理器的实现
  • 原文地址:https://www.cnblogs.com/diyunpeng/p/1618395.html
Copyright © 2011-2022 走看看