使用Ant构建项目

Apache Ant是一个将软件编译、测试、部署等联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。

1 安装Ant

首先,在 http://ant.apache.org/bindownload.cgi 下载Ant。目前,最新的版本是1.9.6,选择 apache-ant-1.9.6-bin.zip 进行下载。
这里写图片描述
当然,也可以选择旧的版本,点击“Old Ant Release”下的“here”,进入旧版本的下载页。

2 配置环境变量

下载成功后,首先将上面下载好的 apache-ant-1.9.6-bin.zip 解压到 C:\java\apache-ant-1.9.6。新增系统变量“ANT_HOME”,内容是“C:\java\apache-ant-1.9.6”。(注意不要有分号)

这里写图片描述

然后,编辑系统环境变量“Path“,添加 Ant 的 bin 目录:”%ANT_HOME%\bin;“。(注意这里有分号)

这里写图片描述

打开CMD命令行界面,输入命令ant,出现如下信息表示配置成功。

这里写图片描述

3 Hello World

每次接触新语言,Hello World是必不可少的初级任务。下面构建一个最简单的应用来让我们感受一下Ant的魅力。

3.1 项目初始化

新建一个工作目录:Demo,在根目录下新建一个目录 src,并在目录 src 下新建一个文件 HelloWorld.java。在根目录下新建一个文件 build.xml。目录结构见下图。

这里写图片描述

HelloWorld.java 文件内容见如下代码片:

// HelloWorld.java
public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}

3.2 构建项目

写入以下内容到配置文件 build.xml 中。

// build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" default="run" basedir=".">
    <property name="src" value="src" />
    <property name="dest" value="classes"/>
    <property name="hello_jar" value="hello.jar"/>

    <target name="init">
        <mkdir dir="${dest}"/>
    </target>

    <target name="compile" depends="init">
        <javac srcdir="${src}" destdir="${dest}"/>
    </target>

    <target name="jar" depends="compile">
        <jar jarfile="${hello_jar}" basedir="${dest}"/>
    </target>

    <target name="run" depends="jar">
        <java classname="HelloWorld" classpath="${hello_jar}"/>
    </target>

    <target name="clean">
        <delete dir="${dest}"/>
        <delete file="${hello_jar}"/>
    </target>

    <target name="rerun" depends="clean, run">
        <ant target="clean"/>
        <ant target="run"/>
    </target>

</project>

使用ant命令构建该项目。

这里写图片描述

如上图所示,则成功构建。
此时目录结构发生变化,根目录下新增了 classes 目录和 hello.jar 文件。并且 classes 目录下有 HelloWorld.class 文件。

这里写图片描述

4 解释以上 Ant 配置文件

Ant 是通过 XML 配置文件来构建项目的,下面根据以上的配置文件来解释 Ant 中几个常用的基本用法。

  • project : 每个构建包含一个工程
  • target : 目标,每个工程都有若干个目标,而这些目标相互之间可以有依赖关系
  • depends : 每个工程包含若干个目标(target),可以依赖于其他的目标
  • property : 定义属性或变量,相当于 Java 里的变量
  • task : 任务,每个任务都相当于一行命令,不同的任务执行不同的命令,可以多个任务在同一个目标下

project

<project name="HelloWorld" default="run" basedir=".">
</project>

Ant 的所有内容必须包含在这个里面,name 是我们给它取的名字,basedir 是工作的根目录。其中的“.”代表当前目录。default 代表默认要做的事情。

property

<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="hello_jar" value="hello.jar"/>

类似程序中的变量,name 是变量名,value 是变量对应的值。

target & task(mkdir)

<target name="init">
    <mkdir dir="${dest}"/>
</target>

目的:创建一个文件夹。
把我们想做的每一件事写成一个 target,它有一个名字。使用mkdir来创建文件夹。将第一个 target 命名为 init,是一个很好的做法,其他的 target 以来这个初始化 target。

target & task(javac)

<target name="compile" depends="init">
    <javac srcdir="${src}" destdir="${dest}"/>
</target>

目的:编译程序,把源程序编译到目标地点。
depends 是它所依赖的 target,在执行这个 compile 的 target 之前,ant 会先检查 init 是否已经被执行过,如果执行过,则直接执行 compile;如果没有执行过,就会执行它依赖的 target,然后再执行本身的 target。

target & task(jar)

<target name="jar" depends="compile">
    <jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>

目的:打 jar 包。

target & task(java)

<target name="run" depends="jar">
    <java classname="HelloWorld" classpath="${hello_jar}"/>
</target>

目的:运行 jar 包内的程序。

target & task(delete)

<target name="clean">
    <delete dir="${dest}"/>
    <delete file="${hello_jar}"/>
</target>

目的:删除生成的文件。

target & task(ant)

<target name="rerun" depends="clean,run">
    <ant target="clean"/>
    <ant target="run"/>
</target>

目的:再次运行,这里显示了如何在一个 target 里边调用其他的 target。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路易斯·李

点个赞再走呗 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值