菜鸟科技网

Linux ant命令如何使用?

ant 是一个基于 Java 的自动化构建工具,它使用一个名为 build.xml 的 XML 文件来描述构建过程,比如编译代码、打包、运行测试等,与 make 不同,ant 不依赖于 Makefile,而是依赖于 XML 配置,这使得它具有很好的跨平台性。

Linux ant命令如何使用?-图1
(图片来源网络,侵删)

安装 Ant

在 Linux 上安装 Ant 通常有两种方式:使用包管理器 或手动安装。

使用包管理器 (推荐)

这是最简单、最快捷的方式。

对于 Debian / Ubuntu / Mint 系统:

sudo apt update
sudo apt install ant

对于 CentOS / RHEL / Fedora 系统:

Linux ant命令如何使用?-图2
(图片来源网络,侵删)
# 对于 CentOS/RHEL 7/8
sudo yum install ant
# 对于 Fedora 或较新版本的 CentOS/RHEL
sudo dnf install ant

安装完成后,可以验证安装是否成功:

ant -version

如果安装成功,你会看到类似以下的输出:

Apache Ant(TM) version 1.10.14 compiled on August 25 2025

手动安装

如果你的系统没有官方仓库,或者你需要安装特定版本的 Ant,可以手动下载安装。

  1. 下载 Ant 访问 Apache Ant 官方下载页面 下载最新的二进制包(apache-ant-1.10.14-bin.tar.gz)。

    Linux ant命令如何使用?-图3
    (图片来源网络,侵删)
  2. 解压文件 将下载的文件解压到一个你喜欢的目录,/usr/local

    # 假设文件下载到了你的 Downloads 目录
    cd ~/Downloads
    sudo tar -zxvf apache-ant-1.10.14-bin.tar.gz -C /usr/local
  3. 设置环境变量 为了让系统能在任何地方识别 ant 命令,需要将其 bin 目录添加到 PATH 环境变量中。

    • 找到 Ant 的安装目录并创建一个符号链接(方便管理):
      sudo ln -s /usr/local/apache-ant-1.10.14 /usr/local/ant
    • 编辑 ~/.bashrc~/.profile 文件(根据你的 shell 类型选择):
      nano ~/.bashrc
    • 在文件末尾添加以下内容:
      export ANT_HOME=/usr/local/ant
      export PATH=$PATH:$ANT_HOME/bin
    • 保存文件后,让配置生效:
      source ~/.bashrc
  4. 验证安装 和第一种方式一样,运行 ant -version 来确认安装成功。


Ant 的核心概念

要使用 ant,你需要理解以下几个核心概念:

  • build.xml (构建文件):这是 Ant 的心脏,是一个 XML 文件,定义了整个构建过程。
  • Project (项目)build.xml 的根元素,代表一个构建项目。
  • Target (目标):一个或多个任务的集合,你可以把它看作是一个构建过程中的一个步骤,compile(编译)、dist(打包),Target 可以相互依赖。
  • Task (任务):Ant 执行的最小工作单元。javac(编译 Java 文件)、jar(创建 JAR 包)、delete(删除文件)等。
  • Property (属性):用于存储可重用的值,类似于变量。src.dir(源代码目录)、build.dir(编译输出目录)。

创建一个简单的 build.xml 示例

假设我们有一个简单的 Java 项目,结构如下:

my-project/
├── src/
│   └── com/
│       └── example/
│           └── HelloWorld.java
└── build.xml

src/com/example/HelloWorld.java 的内容:

package com.example;
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Ant World!");
    }
}

我们来创建 build.xml 文件。

build.xml 的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义一个项目,默认执行 "compile" 目标 -->
<project name="HelloWorld" default="compile" basedir=".">
    <!-- 定义属性 -->
    <property name="src.dir" value="src"/>
    <property name="build.dir" value="build"/>
    <property name="classes.dir" value="${build.dir}/classes"/>
    <property name="jar.dir" value="${build.dir}/jar"/>
    <property name="jar.file" value="${jar.dir}/hello-world.jar"/>
    <!-- 定义 "clean" 目标:清理编译产物 -->
    <target name="clean" description="Remove all generated files">
        <delete dir="${build.dir}"/>
    </target>
    <!-- 定义 "init" 目标:初始化目录结构 -->
    <target name="init" depends="clean" description="Initialize and prepare build directory">
        <mkdir dir="${classes.dir}"/>
        <mkdir dir="${jar.dir}"/>
    </target>
    <!-- 定义 "compile" 目标:编译 Java 源代码 -->
    <target name="compile" depends="init" description="Compile the source code">
        <javac srcdir="${src.dir}" destdir="${classes.dir}"/>
    </target>
    <!-- 定义 "jar" 目标:打包成 JAR 文件 -->
    <target name="jar" depends="compile" description="Create the JAR file">
        <jar destfile="${jar.file}" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="com.example.HelloWorld"/>
            </manifest>
        </jar>
    </target>
    <!-- 定义 "run" 目标:运行 JAR 文件 -->
    <target name="run" depends="jar" description="Run the application from the JAR file">
        <java jar="${jar.file}" fork="true"/>
    </target>
</project>

常用 Ant 命令

在你创建好 build.xml 文件后,就可以在 my-project 目录下运行 ant 命令了。

1. 执行默认目标

project 标签中设置了 default 属性(如我们的例子中是 compile),直接运行 ant 将执行该默认目标。

ant

输出:

Buildfile: /path/to/my-project/build.xml
clean:
   [delete] Deleting directory /path/to/my-project/build
init:
    [mkdir] Created dir: /path/to/my-project/build/classes
    [mkdir] Created dir: /path/to/my-project/build/jar
compile:
    [javac] Compiling 1 source file to /path/to/my-project/build/classes
BUILD SUCCESSFUL
Total time: 1 second

2. 执行指定目标

如果你想执行一个特定的目标,直接在 ant 命令后跟上目标名称即可。

# 只执行 clean 目标
ant clean
# 只执行 init 目标
ant init
# 执行 compile 目标
ant compile

3. 执行多个目标

你可以一次指定多个目标,Ant 会按照你列出的顺序执行它们(如果目标之间没有依赖关系)。

# 先执行 clean,再执行 compile
ant clean compile
# 先执行 clean,再执行 init,最后执行 jar
ant clean init jar

4. 查看所有可用目标

如果你想查看 build.xml 中定义的所有目标及其描述,可以使用 -projecthelp 选项。

ant -projecthelp

输出:

Buildfile: /path/to/my-project/build.xml
Main targets:
 clean          Remove all generated files
 compile        Compile the source code
 jar            Create the JAR file
 run            Run the application from the JAR file
Other targets:
 init           Initialize and prepare build directory
Default target: compile

5. 显示详细输出

默认情况下,Ant 的输出比较简洁,如果你想看到更详细的信息,可以使用 -verbose 选项。

ant -verbose compile

6. 在不同目录下执行构建

你的 build.xml 文件可能不总是位于项目根目录,你可以使用 -f-buildfile 选项来指定构建文件的路径。

# 假设 build.xml 在 /path/to/my-project 目录下
# 而你当前在 /home/user 目录
ant -f /path/to/my-project/build.xml compile

常用任务示例

build.xml 中,你会经常用到以下任务:

  • <mkdir>: 创建一个或多个目录。
    <mkdir dir="logs"/>
  • <delete>: 删除文件或目录。
    <delete file="temp.txt"/>
    <delete dir="build"/>
  • <copy>: 复制文件或目录。
    <fileset dir="src" includes="**/*.xml"/>
    <copy todir="config">
        <fileset dir="src" includes="**/*.properties"/>
    </copy>
  • <javac>: 编译 Java 源代码。
    <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false"/>
  • <jar>: 创建 JAR (Java Archive) 文件。
    <jar destfile="my-app.jar" basedir="${classes.dir}">
        <manifest>
            <attribute name="Main-Class" value="com.example.Main"/>
        </manifest>
    </jar>
  • <exec>: 执行一个外部命令。
    <exec executable="ls">
        <arg value="-l"/>
    </exec>

命令 描述
ant 执行 build.xml 中定义的默认目标。
ant <target> 执行指定的单个或多个目标。
ant -projecthelp 列出所有可用的目标及其描述。
ant -verbose 显示详细的构建日志。
ant -debug 显示更详细的调试信息。
ant -f <path/to/build.xml> 指定构建文件的路径。
ant -D<property>=<value> 在命令行中覆盖或设置属性值。

尽管现在 Maven 和 Gradle 在 Java 生态中更为流行,但 Ant 仍然因其简单、灵活和轻量级的特点而被许多项目使用,尤其是在维护旧项目时,掌握 Ant 的基本使用对于任何 Java 开发者来说都是有价值的。

分享:
扫描分享到社交APP
上一篇
下一篇