【Ant】(1)用Ant工具管理你的Web应用程序

来源:互联网 发布:android滑动解锁源码 编辑:程序博客网 时间:2024/06/03 13:17

主要内容:


了解Ant是什么以及能帮我们做什么事

掌握Ant常用的命令

掌握编写build.xml与运行的方法

一、什么是Ant?

1、Ant是一个构建工具,是一个小程序。但是它通过自动完成所有的编译代码,运行测试以及打包重新部署的结果等繁琐费力的任务来帮助软件团队开发大程序.

2、Ant 使用Java编写,跨平台,易使用且可伸缩。既可以用在小型个人项目中,也可以用于大型多团队软件项目。

3、Ant的目标是自动完成所有的构建过程。

二、Ant的核心概念

1、构建文件:-build.xml:

Ant使用称之为构建文件的xml文件来描述如何构建工程,在这个文件里,开发者列出各种构建目标(target)以及达到这些目标的任务(task)。

2、一个构建文件包含一个项目-project <project>

3、每个项目包含多个目标 – target //每个target为一个大任务

4、目标依赖于其他目标 – depends //大任务可以依赖于其他大任务,助理解:extends也有类似的依赖关系

5、目标包含任务 – javac,java,jar,war,copy,mkdir,delete,sql…//小任务由任务完成所有工作。

三、写一个简单的Build文件

关于BuidlFile的一个说明(翻译自API):

(1)Apache Ant 的build文件都是写在XML中的。

(2)每一个buildfile包含一个project和最少一个默认的target。

(3)Targets包含多个task元素,每一个task有一个id可以被赋予value值,值必须是唯一的。

1、project

(1)一个project包含三个属性:分别是:basedir、default、name

(2)三个属性的含义分别是:

name:是项目的名称;

default:是指程序的入口任务;

basedir:当前项目的路径,”.”指当前目录;

(3)例如:

<?xml version="1.0" encoding="UTF-8"?><project basedir="." name="myProj" default="dft">       </project>

2、target

(1)一个target包含属性:name、depends、description、id、if、unless

(2)这六个属性的含义是:

name:target的名字 ;其中name是必须的属性,其他的属性可选;

depends: 依赖于另一个的target

description:关于这个target函数的一个简短描述

if:the name of the property that must be set in order for this
target to execute.

unless: the name of the property that must not be set in order for this target to execute.

(3)例如:

<?xml version="1.0" encoding="UTF-8"?><project basedir="." name="myProj" default="dft">    <target name="dft" >        <!--echo是一个task-->        <echo message="Hello,Ant"  >        </echo>    </target>   </project>

执行效果为:

Buildfile: F:\project\AntDemo\src\build.xmldft:     [echo] Hello,Ant     [echo]         BUILD SUCCESSFULTotal time: 1 second

3、task

【说明】:task是一片可以被执行的代码。一个任务可以有多个属性(或者参数,如果您愿意的话)。属性的值可能包含对属性的引用。这些引用将在任务执行前解析。

<?xml version="1.0" encoding="utf-8" ?><!--有且必须有一个project元素。    basedir:当前项目的路径,"."指当前目录    name: 项目的名称    default: 是指程序的入口任务--><project basedir="." name="myProj" default="dft">    <!--一个项目中包含一个或多个target,每个target内部又包含一个或多个task        助理解: 一个项目包含一项或多项大任务, 每项大任务又包含一个或多个小任务    -->  <!--定义一个名为dft的target(大任务),该名字在project的default属性中引用了,说明当前target是默认的-->  <target name="dft" depends="jdoc">    <echo message="Hello Ant...jdoc任务执行完毕!"></echo>  </target>  <target name="aa">    <echo message="OKOK..."></echo>  </target>  <target name="jdoc">       <javadoc sourcepath="src"                destdir="d:/a/docs"                packagenames="cn.hncu.*"                encoding="utf-8"                docencoding="GBK"       />       <echo message="aaaabbbcccc"></echo>  </target>  <target name="makeDir">    <!--mkdir可创建多级目录,若存在则不创建-->    <mkdir dir="d:/a/aa//bb"/>  </target>    <target name="delDir">        <!--delete任务可以删除文件或目录-->       <delete dir="d:/a/aa//bb"></delete>    </target>    <!--我们自己写Ant程序实现把项目发布到Tomcat/webapps-->    <property name="tomcat_home" value="D:\\apache-tomcat-7.0.30\\webapps"></property>    <target name="deploy" description="发布项目到Tomcat服务器的webapp目录">       <copy todir="${tomcat_home}/${ant.project.name}">          <fileset dir="${basedir}/WebRoot">             <!--**为任意目录(包括深度和名称), *.*为任意文件-->             <include name="**/*.*"/>          </fileset>       </copy>    </target></project>
原创粉丝点击