ANT 构建和部署项目

ANT 简介

  • Apache ANT 是一个 Java 项目的构建工具,用于打包部署Java项目,最早是使用于打包部署 Tomcat 项目,后面逐步拓展到打包部署大部分Java项目;
  • Apache ANT 是平台无关的,可以同于处理在任何平台下的Java项目打包部署;
  • Apache ANT 核心是使用XML脚本编写打包任务(该脚本被称为 build.xml),使用其提供的命令行工具,实现将现有的项目自动化打包为 JAR,WAR 等文件,方便部署到服务器生产环境;

ANT 安装配置

1)Apache ANT 是使用Java编写的,下载之前需要在完成JDK的安装配置,Apache ANT 二进制文件的下载地址:
http://ant.apache.org/bindownload.cgi
2)下载压缩包后,解压到系统的某一个文件夹中;
3)在系统环境变量中,添加一个 ANT_HOME 变量,指向 Apache ANT 的安装目录文件夹;
将 Apache ANT 中bin文件夹(如 c:\ apache-ant-1.10.1\bin )路径,添加到系统环境变量的 PATH 变量中,方便调用ant的命令行工具(这个步骤不是必须的);
类似如下示例:
1
ANT_HOME c:\apache-ant-1.10.1
2
PATH     %ANT_HOME%\bin
4)验证ANT是否安装成功,命令行中输入以下指令:
1
C:>ant -version
返回 Apache ANT 版本信息,则说明安装成功;


ANT 常用内置任务说明列表

ANT 构建项目基本的步骤如下:创建 build.xml ,通过命令行运行相关指令,输出项目的JAR/WAR打包形式;
build.xml 文件是ANT运行的配置文件,一般的格式如下:
1
<project>
2
    <property/>
3
    <property/>
4
    <target name="init">
5
       ......
6
    target>
7
    <target>
8
       ......
9
    target>
10
    <target>
11
       ......
12
    target>
13
project>
14
便签是项目的根标签,里面包含一系列的标签和其他标签,是任务标签,标签内为实际执行任务的内容,在ANT运行时,通过指定target指定配置文件中的target(详见下面运行ANT部分);

以下是常见 Task 标签及常用属性的列表,完整的 Task 标签列表参见:http://ant.apache.org/manual/index.html
标签 说明及常用属性
基础标签
build.xml 的根元素,通常位于文件的顶部,常用属性如下:
  • name    -- 指定工程名称;
  • basedir  --指定工程的基路径,如果设为".",即 build.xml 文件所在路径;
  • default  --执行默认执行的 target,在运行ANT没有指定target时,执行该默认target;
任务标签,一般一个traget用于描述一个任务,常用属性如下:
  • name       --指定target名称
  • depends  --指定一个或多个traget名,表示运行该target之前先运行该这些指定 traget
  • if              --指定一个属性名,当该属性被设置时,执行该traget;
  • unless      --指定一个属性名,待该属性没有被设置时,执行traget
  • description  --指定该target的描述信息
设置属性,一般键值对的形式存在,在其他标签中可以通过 ${name} 的形式引用该value;
  • name  --指定属性名;
  • value  --指定属性值;
文件操作
创建目录,常用属性如下:
  • dir   --目录地址
<move> 移动文件/目录,常与配合使用 ;
  • file            --要移动的原文件/目录
  • todir         --移动目标目录
  • overwrite  --当文件名重复时,是否覆盖操作
复制文件/目录,常用参数同常与配合使用;
删除文件/目录,常与配合使用;
  • file/dir   --待删除的文件/目录
项目编译,打包,运行
  编译 Java 源文件,常用属性如下:
  • srcdir      --指定Java源文件位置;
  • destdir    --指定编译后存放Class文件的位置;
  • classpath --额外使用的类路径classpath
  运行 java class 或 jar
  • classname  --运行class文件的名称(不带.class尾缀)
  • args            --运行参数
生成项目的 javadoc 文档
  • sourcename   --指定原文件路径(一般指向java源文件夹 src文件夹);
  • destdir            --javadoc输出目录
生成项目的 war 包
  • warxml               -- 需要的web.xml文件路径
  • warfile/destfile   -- 生成的WAR路径(具体到创建文件名)
生成项目的 jar 包
  • destfile    --生成 JAR 路径(具体到创建文件名)
  • basedir    --生成dir的起始路径
  • exclude    --不包括的文件



ANT 构建和部署项目


以下是示例用的JavaWeb项目结构:
1
ServletTest2                                             
2
                                                                                                             
3
    ├─src                                                           
4
      ├─control1                                                   
5
            CheckServlet.java                                     
6
            OutputServlet.java                                    
7
            WelcomeServlet.java                                   
8
                                                                  
9
      ├─control2                                                   
10
            UploadFileServlet.java                                
11
                                                                  
12
      └─control3                                                   
13
              RedirectServlet.java                                 
14
              RefreshServlet.java                                  
15
                                                                   
16
    └─web                                                           
17
          hello.jsp                                                
18
          index.jsp                                                
19
          login.html                                               
20
          message.jsp                                              
21
          upload.html                                              
22
                                                                   
23
        └─WEB-INF                                                   
24
              web.xml                                                                                                 
25
            ├─classes                                               
26
                                                                                  
27
            └─lib                                                   
28
                    commons-fileupload-1.3.3.jar                    
29
                    commons-io-2.5.jar          
一般 build.xml ANT 配置文件位于项目的根目录下,在以上示例中位于 ServletTest2/build.xml 目录下;

1、基本项目构建

创建 build.xml
1
<project name="ServletTest2" default="about" basedir=".">
2
3
    
4
    <target name="init">
5
        <property name="src" value="src" />
6
        <property name="web" value="web" />
7
        
8
        <path id="dependence-path">
9
            <fileset dir="${web}/WEB-INF/lib">
10
                <include name="*.jar" />
11
            fileset>
12
        path>
13
    target>
14
15
    
16
    <target name="compile" depends="init" >
17
        <mkdir dir="${web}/WEB-INF/classes"/>
18
        <javac srcdir="${src}" destdir="${web}/WEB-INF/classes">
19
            <classpath refid="dependence-path" />
20
        javac>
21
        <echo message="Compliation is finished!" />
22
    target>
23
24
    
25
    <target name="create_javadoc" depends="init" >
26
        <javadoc  sourcepath="${src}" destdir="javadoc" version="true" windowtitle="ServlerTest2 Application" />
27
        <echo message="Javadoc has been created!" />
28
    target>
29
30
    
31
    <target name="create_war" depends="compile">
32
        <war destfile="ServletTest2.war" webxml="${web}/WEB-INF/web.xml">
33
            <classes dir="${web}/WEB-INF/classes" />
34
            <lib dir="${web}/WEB-INF/lib" />
35
            <fileset dir="${web}">
36
                <include name="**/*.*" />
37
            fileset>
38
        war>
39
        <echo message="ervletTest2.war has bean created!" />
40
    target>
41
42
    
43
    <target name="clean_class" depends="init">
44
        <delete>
45
            <fileset dir="${web}/WEB-INF/classes">
46
                <include name="**/*.class" />
47
            fileset>
48
        delete>
49
    target>
50
51
    
52
    <target name="about">
53
        <echo>
54
           The build.xml file contains targets for building ServletTest2 web applaction.
55
           Just fo test.
56
        echo>
57
    target>
58
project>

2、运行 ANT

运行 build.xml 指定的 traget 语法如下:
1
ant -buildfile <build-dir>/build.xml tragetname
以以上build.xml例子为例,要生成项目的 WAR 文件步骤如下:
1
1、进入 build.xml 所在的目录
2
cd D:\Program Design\ServletTest2
3
4
2、运行 build.xml 生成 WAR 的 target
5
ant -buildfile D:\Program Design\ServletTest2\build.xml create_war
之后便会在 ServletTest2 根目录下生成一个 WAR 文件;

3、部署项目

将以上生成的的WAR文件,放置到 Tomcat 服务器的 /webapps 目录下即可,Tomcat 在运行时会自动将 WAR文件展开目录;









你可能感兴趣的:(ANT)