好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Ant基础教程.pdf

12页
  • 卖家[上传人]:lcm****801
  • 文档编号:47114950
  • 上传时间:2018-06-29
  • 文档格式:PDF
  • 文档大小:145.40KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Ant 是一个 Apache 基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作 一. 安装与配置下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本解压到某个目录(例如E:“apache-ant-1.7.0),即可使用添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为 E:“apache-ant-1.7.0安装与配置完毕后,读者可以测试一下Ant是否可用,首先进入Ant的bin 目录,运行命令ant –version,若安装和配置成功,则会显示Ant版本信息,如下图所示:由上可以看出,读者运行Ant的命令时,需要进入到Ant的bin目录,如何才能让系统自动找到Ant 呢?这时需要读者在系统环境变量path中添加Ant 的 bin 目录设置完成后,我们就可以在任何目录(例如C:“Documents and Settings“AmigoXie 目录)输入Ant的命令,来获得命令的运行结果二. Ant 的关键元素Ant 的构件文件是基于XML 编写的,默认名称为build.xml。

      为了更清楚的了解 Ant,在这里编写一个简单的Ant程序,用来展现Ant的功能,让读者对 Ant 有一个初步的了解首先在E盘下建立一个build.xml文件,内容如下:读者可以进入E 盘,然后运行ant sayHelloWorld,可以看到如下的运行结果:其中sayHelloWorld 为需要执行的任务的名称如果文件名不为build.xml,而为 hello.xml 时,读者运行同样的命令时,命令窗口会出现如下错误:Buildfile: build.xml does not exist!Build failed由上面的命令的错误提示可以看出,ant命令默认寻找build.xml文件若文件名为hello.xml 时,读者还需要对命令做少许改变,改为:ant –f hello.xml sayHelloWorld、ant –buildfile hello.xml sayHelloWorld 或ant –file hello.xml sayHelloWorld接下来开始向读者讲解本节的重点:Ant的关键元素project、target、property 和task1. project 元素project 元素是 Ant 构件文件的根元素,Ant构件文件至少应该包含一个project 元素,否则会发生错误。

      在每个project元素下,可包含多个target 元素接下来向读者展示一下project元素的各属性1)name 属性用于指定project 元素的名称2)default 属性用于指定project 默认执行时所执行的 target的名称3)basedir 属性用于指定基路径的位置该属性没有指定时,使用Ant的构件文件的附目录作为基准目录下面给读者一个简单的例子来展示project的各元素的使用修改E:“build.xml 文件,修改后的内容如下:从上面的内容我们可以看出,在这里定义了default属性的值为sayBaseDir,即当运行ant 命令时,若未指明执行的target时,默认执行的 target 的sayBaseDir,同时还定义了basedir属性的值为E:“apache-ant-1.7.0,进入E盘后运行ant命令,可看到运行的结果,如下图所示:因为设定了basedir 的值,所以 basedir属性的值变成了读者设置的值读者可以自行将project 元素的 basedir属性去掉后运行ant看看运行结果,此时 basedir 的值变成了E:“,即为 Ant构件文件的父目录。

      有的时候,读者可能有这种需求,即想得到某个project下所有的target 的名称,读者可以通过在ant命令里加上-proecthelp来达到该目的例如针对上述的例子我们运行ant –projecthelp,输出结果如下:Buildfile: build.xmlMain targets:Other targets:sayBaseDirDefault target: sayBaseDir2. target 元素它为Ant 的基本执行单元,它可以包含一个或多个具体的任务多个target 可以存在相互依赖关系它有如下属性:1)name 属性指定target 元素的名称,这个属性在一个project元素中是唯一的我们可以通过指定target 元素的名称来指定某个target2)depends 属性用于描述target 之间的依赖关系,若与多个target存在依赖关系时,“需要以 ,”间隔Ant 会依照 depends属性中target出现的顺序依次执行每个 target被依赖的 target 会先执行3)if 属性用于验证指定的属性是否存在,若不存在,所在target将不会被执行。

      4)unless 属性该属性的功能与if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在target 将会被执行5)description 属性该属性是关于target 功能的简短描述和说明下面带领读者来看一个各属性综合使用的例子修改E:“build.xml文件,修改后的内容如下:a depend example!进入E 盘后运行ant targetB,可看到如下图所示的运行结果:读者分析结果后可以看到,我们运行的是名为targetB的 target,因该target 依赖于 targetA,所以targetA将首先被执行,同时因为系统安装了 java 环境,所以 ant.java.version属性存在,执行了targetA这个target,输出信息:[echo] Java Version: 1.5,targetA执行完毕后,接着执行targetB,因为 amigo不存在,而unless属性是在不存在时进入所在的 target 的,由此可知targetB得以执行,输出信息:The base dir is: E:“3. property 元素该元素可看作参量或者参数的定义,project的属性可以通过property元素来设定,也可在Ant 之外设定。

      若要在外部引入某文件,例如build.properties 文件,可以通过如下内容将其引入:property 元素可用作task 的属性值在task“中是通过将属性名放在 ${”“和 }”之间,并放在task 属性值的位置来实现的Ant 提供了一些内置的属性,它能得到的系统属性的列表与Java文档中System.getPropertis()方法得到的属性一致,这些系统属性可参考 sun网站的说明同时,Ant 还提供了一些它自己的内置属性,如下:basedir:project 基目录的绝对路径,该属性在讲解 project元素时有详细说明,不再赘述;ant.file:buildfile 的绝对路径,如上面的各例子中,ant.file的值为 E:“build.xml;ant.version:Ant 的版本,在本文中,值为 1.7.0;ant.project.name:当前指定的 project的名字,即前文说到的project 的 name 属性的值;ant.java.version:Ant检测到的 JDK的版本,在上例运行结果中可看到为 1.5下面让读者来看一个property元素使用的简单例子。

      修改E:“build.xml 文件,内容如下:该例的运行结果如下图所示:由此读者可以看出,通过如下两个语句:我们设置了名为name 和 age的两个属性,这两个属性设置后,读者在下文中可以通过${name}和${age}分别取得这两个属性的值三. Ant 的常用任务ls 执行单位在本小节中,主要引导读者来看下Ant的常用任务及其使用举例1. copy 任务该任务主要用来对文件和目录的复制功能举例如下:Eg1.复制单个文件:Eg2.对文件目录进行复制:Eg3. 将文件复制到另外的目录:2. delete 任务对文件或目录进行删除,举例如下:Eg1. 删除某个文件:Eg2. 删除某个目录:Eg3. 删除所有的备份目录或空目录:3. mkdir 任务创建目录eg:4. move 任务移动文件或目录,举例如下:Eg1. 移动单个文件:Eg2. 移动单个文件到另一个目录:Eg3. 移动某个目录到另一个目录:5. echo 任务该任务的作用是根据日志或监控器的级别输出信息它包括message、file、append 和 level四个属性,举例如下:四. 利用 Ant 构建和部署 Java工程Ant 可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松的构建和部署Java 工程的目的。

      下面来看几个知识点1. 利用 Ant 的 javac任务来编译 java程序Ant 的javac 任务用于实现编译Java程序的功能下面来看一个简单的例子:首先我们建立名为antstudy的Java工程,建立src目录为源代码目录,在 src 目录下建立HelloWorld.java这个类文件该类文件的内容如下:public class HelloWorld {public static void main(String[] args) {System.out.println(“Hello,Amigo“);}}同时在antstudy 工程的根目录下建立build.xml文件,在该文件中编译src 目录下的java 文件,并将编译后的class文件放入build/classes目录中,在编译前,需清除classes目录,该文件的内容如下:运行该build.xml 文件,可在工程中看到新增了build/classes目录,并在该目录中生成了编译后的HelloWorld.class文件2. 使用 Ant 的 java任务运行 Java程序Ant 中可以使用java 任务实现运行Java程序的功能。

      下面在 1的例子中进行如下的修改,修改后的build.xml文件的内容如下:运行该build.xml 文件,可在控制台看到HelloWorld的main方法的输出3. 使用 Ant 的 jar 任务生成 jar文件读者可以在上例的基础上更进一步,来生成jar包,可在run这个target 下再加上如下 target:此时将ant 的project 的 default属性设置为jar,同时运行该build.xml 文件,运行完毕后,可看到在工程目录下生成了一个 jar包HelloWorld.jar4. 使用 Ant 的 war 任务打包 J2EE Web项目建立一个J2EE Web 工程,其目录结构如下图所示:其中src 为源代码目录,WebRoot为各 jsp存放目录,lib为工程的包目录在 antwebproject 工程目录下建立了build.xml文件,该文件为该工程的 Ant 构件文件读者可以src目录下放入在前续例子中开发的HelloWorld.java 文件,并在WebRoot下建立index.jsp文件,其内容很简单,就是输出Hello 信息,代码如下所示:ant 打包测试Hello,Ant接下来编写build.xml 文件,其内容如下:各target 的作用在内容中已经进行说明,在此不再赘述。

      运行该 build文件,更新目录后,可看到在build目录下生成了antwebproject.war文件,解开后可看到其目录结构如下:--META-INF-。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.