`

Ant基本使用指南

    博客分类:
  • ant
ant 
阅读更多

Ant介绍以及基本使用指南

Ant 是著名Java开源组织Apache的一个项目,是一个基于java的build工具。它可以使你通过ant脚本语言,自动你的项目拷贝到某个目录,发布项目,或者生成一些代码,执行SQL语言。总之它可以帮助你完成项目开发中除了开发代码以外的大部分辅助性工作。为什么需要手工去编写ant脚本呢,很多IDE工具会为我们生成ant脚本阿?有人会这么问。要知道靠IDE自动生成的东西,总是有这样那样的缺点,以及不足,他不能完全满足你的很多需要。如果出现了问题,你不得不手动修改ant脚本,这时候如果你不了解ant那么你将会一筹莫展。所以为了能使自己的项目变得更专业化,或者想在领导面前show一下的话(有时候很有用)。还是了解一下ant吧。

Ant 的安装使用

安装

Ant安装很简单,只要你从apache网站上下载他的zip包,然后解压到任何本地磁盘上,在环境变量中添加 Path 的值加上 %ANT_HOME%/bin 就可以了,这样在Dos提示符中就可以使用 ant 这个命令了。其他的你需要设置一下 ANT_HOME 这个环境变量为你解压后的目录。还有就是你要检查一下你的JDK安装目录JAVA_HOME是不是加到你的环境变量里面去了。

使用概述

使用ant 也同样是非常简单的事。通常的做法就是在你的项目里面建立一个XML文件,名字通常可以取 build.xml 。当然你可以取任何你喜欢的名字。这个文件就是你需要ant为你项目做的一些辅助性工作的批处理文件。他的格式可能是这样的。我们先不具体说ant 标记,先有一个感性的认识会比较快的上手。

例子:

<?xml version="1.0" encoding="UTF-8"?>

<project default="all" name="pluto-project" basedir=".">

   <target name="all" depends="api, container, portal">

   </target>

   <target name="clean" depends="api-clean, container-clean, portal-clean">

   </target>

   <target name="api">

      <property name="final.name" value="portlet-api-@@DATE@@"/>

      <ant antfile="build.xml" dir="api" target="jar" inheritAll="false" />

   </target>

   <target name="api-clean">

      <ant antfile="build.xml" dir="api" target="clean" inheritAll="false" />

   </target>

   <target name="container" depends="api">

      <ant antfile="build.xml" dir="container" target="jar" inheritAll="false" />

   </target>

   <target name="container-clean">

      <ant antfile="build.xml" dir="container" target="clean" inheritAll="false" />

   </target>

   <target name="portal" depends="container">

      <ant antfile="build.xml" dir="portal" target="jar" inheritAll="false" />

   </target>

   <target name="portal-clean">

      <ant antfile="build.xml" dir="portal" target="clean" inheritAll="false" />

   </target>

</project>

 

这个build.xml 文件引自apache的一个项目。里面可以看到有 project 以及target 标签。有些项目的build.xml可能不是以<?xml version="1.0" encoding="UTF-8"?>开头的,不过没关系,以后再说明。每一个build.xml 只能有一个project 标签, 每个project 标签里面包含了几个tartget标签。每一个target可以独立执行或者依赖于其他target执行完毕才能执行。

以下是一个典型的例子。

<target name="A"/>

<target name="B" depends="A"/>

<target name="C" depends="B"/>

<target name="D" depends="C,B,A"/>

当中target A 可以独立执行,但是B、C、D 则依赖于其他target才可以执行,也就是说,执行D, ant 就会按照 A- B- C 这样的顺序先执行其他target。

Project 标签里面有一个 default="all" ,这就是说明了在默认情况下 all 这个target 会被执行。

定义变量

在这个文件中没有看到属性定义,其实如果你想使用定义变量的话,可以在project 标签下 定义如这样的标签

<project ……>

<property name="src" location="src"/>

  <property name="build" location="build"/>

<target ……>

这样你在引用的时候就可以使用形如${build}

<target name="init">

……

<mkdir dir="${build}"/>

……

  </target>

这样的变量了,省得自己去修改每一处需要用到变量的地方

添加目录操作

<target name="init">

      <mkdir dir="${dist.dir}" />

      <mkdir dir="${dist.classes.dir}" />

      <mkdir dir="${dist.webapps.dir}" />

   </target>

这里的dist.dir 等用${}括起来的,是我们定义的变量。

编译java文件的操作

<target name="compile">

      <javac srcdir="${src.dir}" destdir="${dist.classes.dir}" debug="true" encoding="GBK">

         <classpath refid="classpath" />

      </javac>    

      <jar destfile="${dist.classes.dir}/lib/app.jar" basedir="${dist.classes.dir}"/>

   </target>

这里说一下 javac 这个任务标签

其中看到 有 srcdir 、destdir、debug 、encoding 等属性,还有一个 classpath 的子标签。Srcdir就是目标source,需要编译的源文件,destdir就是目的地,编译出来的class的存放地。Debug参数是指明source是不是需要把debug信息编译进去,如果不加这个参数等于在命令行后面加上 -g:none 这个参数。Encoding 这个参数指明以何种编码方式编码你的source文件,对于有中文文字的代码来说这项比较重要。

Classpath 指明了你需要应用的jar包,或者其它class文件的所在地,这也是非常重要的一项选项。使用方式有以下几种。

<property name="lib.dir" value="${basedir}/lib" />

…….

<path id="classpath">

            <fileset dir="${lib.dir}">

                  <include name="*.jar"/>

            </fileset>

        </path>

……

<classpath refid="classpath" />

作为classpath 引用预先定义的jar包位置,refid 指明了一个引用变量。一般在real-world情况下会这样使用。简单的使用是这样的:

<javac srcdir="${src}"

         destdir="${build}"

         classpath="xyz.jar"

         debug="on"

  />

这就简单了点。

jar包操作

<jar destfile="${dist}/lib/app.jar" basedir="${dist.classes.dir}"/>

这个就是把编译好的文件打成jar包的ant 脚本,和上面javac一样,可以放在任意位置。很明显destfile 就是 你想要打成的包,basedir就是你的目标class文件,其它的复杂参数手册上都有,可以对照参考。

<jar destfile="${dist}/lib/app.jar">

    <fileset dir="${build}/classes" excludes="**/Test.class" />

    <fileset dir="${src}/resources"/>

  </jar>

上面这段脚本也很容易理解,就是除了Test.class文件以外,把一个source的resource目录,连同编译后的class脚本一起打进app.jar包内。

 

复制文件操作

<copy todir="${dist.webapps.dir}/WEB-INF/lib" overwrite="true" flatten="true">

         <fileset dir="${lib.dir}">

            <include name="*.jar" />

            <exclude name="j2ee.jar" />

         </fileset>

      </copy>

上面脚本很容易理解。 Todir 指定了需要拷贝的地点,overwrite 是否需要覆盖,flatten是否忽略目的目录结构,只得是不管什么目录,直接拷贝文件到目的地,丢弃其所在结构。

<fileset dir="${lib.dir}">

            <include name="*.jar" />

            <exclude name="j2ee.jar" />

         </fileset>

选定除了j2ee.jar包以外的所有在lib.dir变量所定义的包下面的jar包

其它拷贝样式

<copy file="myfile.txt" todir="../some/other/dir"/>

单文件拷贝

<copy file="myfile.txt" todir="../some/other/dir"/>

文件到目录拷贝

<copy todir="../new/dir">

    <fileset dir="src_dir"/>

  </copy>

目录对拷贝

比较有用的命令

<copy todir="../backup/dir">

    <fileset dir="src_dir"/>

    <filterset>

      <filter token="TITLE" value="Foo Bar"/>

    </filterset>

  </copy>

拷贝 sr_dir 目录到 backup/dir目录,并且把所有文件中的 @TITLE@ 替换成 Foo Bar 。还有很多用法,等到要使用的时候可以去查手册。

删除操作

<target name="clean">

      <delete dir="${dest.dir}"/>

      <delete file="${dest2.dir}"/>

   </target>

以上操作也是很容易理解的。

 

执行ant 脚本

 

在有build.xml 的目录提示符下使用 ant 就可以了。如果是其他的名字,那就使用ant -buildfile <文件名>   就可以了。

其它的就是在具体开发过程中real-world式的比较经典的一些操作。比方说利用XDoclet自动生成hibernate配置文件,执行SQL脚本,这些会在后续介绍中详细描述用法。掌握了它们,你就是会在生产过程中大大提高工作效率,别人也会对你刮目相看的,别忘了和你的同事分享哦。

 

作者:Spike Spiegel ,

Blog: http://blog.csdn.net/hk2000c/

 

About copyright:欢迎转载,请注明作者。

 

参考资料

Apache Ant 主站:http://ant.apache.org/

 

分享到:
评论

相关推荐

    Ant基本使用指南, 好用

    Ant基本使用指南 Ant基本使用指南 Ant基本使用指南

    Ant基本使用指南--从入门到精通

    Ant基本使用指南--从入门到精通 适合于新手和有经验的人士

    Ant基本使用指南(入门教程)

    在学习struts+spring+hibernate,尤其是Appfuse的过程中大量涉及到ant的使用,因此我觉得有必要对ant做个比较深入的学习,以下是在学习过程中搜集的材料。比较详细,很适合没有接触过ant的初学者。

    ant1.7使用手册指南

    ant的一些使用手册 包括ant1.7基本介绍及ant1.7的API文档

    ant使用指南.pdf

    (build file)的基本结构,并学习如何调用这个工具。我们将逐步完成为一个简单 Java 项目编 写生成文件的步骤,然后考察 Ant 的其他一些有用功能,包括文件系统操作和模式匹配。最后编写 一个扩展 Ant 功能的自己的...

    Ant介绍以及基本使用指南

    Ant介绍以及基本使用指南,jar,war打包语法,打包的注意事项,及bulid.xml的做成。

    Ant使用指南pdf

    全面的ant使用手册~!内容如下: · Ant 生成文件是如何构造的 · 如何从命令行以及从Eclipse 内运行Ant · 如果通过编译源代码、创建 JAR 文件以及时间戳文件(以识别每次生成过程的输出)来生 成简单的 Java 项目 ...

    ant学习指南 ANT是一个基于Java的自动化脚本引擎

    ANT是一个基于Java的自动化脚本引擎,脚本格式为XML。除了做Java编译相关任务外,ANT还可以通过插件实现很多应用的调用。  1)ANT的基本概念: ... 3)ANT的使用:最好的学习只不过是一个简单实用的例子起步……

    Ant使用指南

    我们将首先查看 Ant 生成文件 (build file)的基本结构,并学习如何调用这个工具。我们将逐步完成为一个简单 Java 项目编 写生成文件的步骤,然后考察 Ant 的其他一些有用功能,包括文件系统操作和模式匹配。...

    ant入门指南

    ant工具的基本用途说明,还有一个比较常用的实例。

    jTester使用指南(带书签).pdf

    《jTester使用指南》jTester 写单元测试的开发文档,作者吴大瑞,pdf 格式,大小 1.1MB。本书带有 pdf 书签,方便读者阅读。 目录: jTester使用指南 目录 第 1 章 安装jtester maven用户安装 ant用户安装 安装...

    Eclipse权威开发指南2.pdf

    2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面..... 22 2.2.3 任务、书签和问题..... 28 2.2.4 后台处理..... 29 2.2.5 Eclipse的帮助功能..... 30 2.3 资源管理...... ...

    Eclipse权威开发指南3.pdf

    2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面..... 22 2.2.3 任务、书签和问题..... 28 2.2.4 后台处理..... 29 2.2.5 Eclipse的帮助功能..... 30 2.3 ...

    Swift编程权威指南(第2版)

    书中系统讲解了在iOS和macOS平台上,使用苹果的Swift语言开发iPhone、iPad和Mac应用的基本概念和编程技巧。主要围绕使用Swift语言进行iOS和macOS开发,结合大量代码示例,教会读者利用高 级iOS和macOS特性开发真实的...

    Java_EE企业应用实战SSH(第三版)-part3

    1.5Ant的安装和使用 1.5.1Ant的下载和安装 1.5.2使用Ant工具 1.5.3定义生成文件 1.5.4Ant的任务(task) 1.6使用CVS进行协作开发 1.6.1安装CVS服务器 1.6.2配置CVS资源库 1.6.3安装CVS客户端 1.6.4发布项目...

    Java_EE企业应用实战SSH(第3版)-part1

    1.5Ant的安装和使用 1.5.1Ant的下载和安装 1.5.2使用Ant工具 1.5.3定义生成文件 1.5.4Ant的任务(task) 1.6使用CVS进行协作开发 1.6.1安装CVS服务器 1.6.2配置CVS资源库 1.6.3安装CVS客户端 1.6.4发布项目...

    Java_EE企业应用实战SSH(第3版)-part2

    1.5Ant的安装和使用 1.5.1Ant的下载和安装 1.5.2使用Ant工具 1.5.3定义生成文件 1.5.4Ant的任务(task) 1.6使用CVS进行协作开发 1.6.1安装CVS服务器 1.6.2配置CVS资源库 1.6.3安装CVS客户端 1.6.4发布项目...

    Eclipse权威开发指南1.pdf

    2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面..... 22 2.2.3 任务、书签和问题..... 28 2.2.4 后台处理..... 29 2.2.5 Eclipse的帮助功能..... 30 2.3 ...

    ThriftBook:《 Apache Thrift程序员指南》中示例的源代码

    C ++示例提供了makefile,而Java示例提供了Build.xml文件,分别用于使用make / ant进行构建。 构建脚本和代码已通过各种Apache Thrift版本进行了测试。 通常,您应该使用最新版本的Apache Thrift。 蚂蚁的

Global site tag (gtag.js) - Google Analytics