ANT 构建和部署项目

Apache ANT是一个Java项目的构建工具,适用于平台无关的项目打包和部署。它通过XML脚本(build.xml)定义任务,能将项目打包成JAR或WAR文件。本文将介绍ANT的安装配置、常用内置任务,并详细讲解如何进行基本项目构建、运行ANT及部署项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 二进制文件的下载地址:
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
<project>便签是项目的根标签,里面包含一系列的<target>标签和其他标签,<target>是任务标签,标签内为实际执行任务的内容,在ANT运行时,通过指定target指定配置文件中的target(详见下面运行ANT部分);

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









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值