您的位置:首页 > 产品设计 > UI/UE

Ant之build.xml基础入门

2013-03-05 23:03 316 查看
刚刚接触使用ant,在此做一些简单的记录
首先,对Ant作下简单介绍:
Ant是Apache目录下的一个子项目,是一种基于Java的build工具。
本人理解就是一种打包的工具,可以利用ant这种构建工具对项目进行编译、测试、运行等操作,从而避免了重复且复杂的工作。

由于Ant构建文件都是以XML文件来描述的,因此Ant具有操作简单的优点,下面根据一个简单的例子来介绍一下Ant的默认xml文件build.xml:

<?xml version="1.0"?>
<project name="antweb" default="war" basedir=".">
<property name="classes" value="build/classes"></property>
<property name="build" value="build"></property>
<property name="lib" value="WebRoot/WEB-INF/lib"></property>

<target name="clean">
<delete dir="build"></delete>
</target>

<target name="compile" depends="clean">
<echo>
#######################################
# compile program... #
#######################################
</echo>
<mkdir dir="${classes}"/>
<javac srcdir="src" destdir="${classes}"></javac>
</target>

<target name="war" depends="compile">
<war destfile="${build}/antweb.war" webxml="WebRoot/WEB-INF/web.xml">
<fileset dir="WebRoot" includes="**/*.jsp"></fileset>
<lib dir="${lib}"></lib>
<classes dir="${classes}"></classes>
</war>
</target>
</project>

1.
<project>根标签:每个构建文件都有一个根标签,一个根标签对应一个项目

(1)name属性:项目名称。name=“antweb”表明该项目的名称是antweb

(2)default属性:默认的运行项目(该项必须指定)。default=“war”表明该项目默认执行的任务是war,也就是打成war包

(3)basedir属性:项目的基准目录。basedir=“.”表明该项目的基准目录是根目录

<project>根标签还包含description属性,表明该项目的项目描述信息。

2.<property>标签:构建文件的属性,用于设置web项目的一些文件或文件夹存放位置等

(1)name属性:变量名。name=“classes”表明该项目的属性变量名为classes

(2)value属性:变量的值。value=“build/classes”表明变量名对应的值是build/classes

3. <target>标签:任务标签,一个项目构建文件中可以有多个target标签,一个标签也可以依赖其他的target标签。

(2)name属性:任务名称。name=“clean”表明该任务是清除文件夹下的内容;name=“compile”表明该任务是编译

(3)depends属性:依赖目标。depends=“clean”表明该任务是依赖于名为clean的任务完成后执行的

<target>标签还包括if(该属性设置成立时才执行)、unless(当该属性不成立时执行,与if相反)、description(任务描述)属性。

4.<delete>标签:可以删除某个或某组文件、某个目录以及所有备份的目录或空目录

(1)dir属性:指定要删除的目录名。dir=“build”表明要删除的文件目录是build文件夹下的所有文件

<delete>标签还包括file(要删除的文件名)、includeEmptyDirs(是否删除空目录)、fileonerror(遇到错误是否停止)等属性。

5.<echo>标签:根据日志或监控器的级别输出信息,它包括message、level、file和append四个属性。上面例子中会原样输出<echo>标签中的内容。

6.<mkdir>标签:用于创建一个目录

(1)dir属性:指定要创建的目录名。dir=“${classes}”表明要创建的目录名就是变量名为classes的地址。

7.<javac>标签:用于编译某个文件或某组文件

(1)srcdir属性:源程序的目录。srcdir=“src”表明要编译的源程序目录是src下的所有文件

(2)destdir属性:.class文件的输出目录。destdir=“${classes}”表明class文件的输出目录是build/classes目录下

<javac>标签还包含include(被编译的文件模式)、excludes(被排除的文件模式)、classpath(所使用的文件类路径)、debug(调试信息)、optimize(是否优化)、berbose(提供详细的输出信息)等属性。

8.<war>标签:打成war包

(1)destfile属性:指定文件路径和文件名。destfile=“${build}/antweb.war”表明war包的路径为build目录下且war包名称为antweb.war

(2)webxml属性:指定web.xml文件的路径。webxml=“WebRoot/WEB-INF/web.xml”表明web.xml文件的路径

其中的<fileset>标签表明要打成war包的文件的集合路径,<lib>标签表明要打成war包中的工具类路径,<classes>标签表明要打成war包的class文件路径。

也可以将java项目打成jar包,在根标签下加一个target标签,具体的配置代码如下

<target name="jar" depends="run">
<jar destfile="helloword.jar" basedir="build/classes">
<manifest>
<attribute name="Main-class" value="HelloWorld"/>
</manifest>
</jar>
</target>

Main-class是jar文件的入口类,该类必须是一个入口类,通过该属性的指定来运行jar文件。

Ant官方地址:http://ant.apache.org/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: