每日 Java - Ant 构建工程

Ant 构建工程

Ant 和 maven,gradle都是 Java 工程的构建工具,如果您以前使用过 make,那么关于构建工具的作用也就了然于胸了。如果您以前没有接触过,那么这篇文章就会帮助你了解 Ant 并让您能够手动去使用 Ant 构建 Java 工程。

Ant 安装

Ant 是跨平台的,所以您可以在 Windows 和 Linux 等操作系统上安装,我们的例子采用的是 Windows 10 系统, JDK1.8 版本环境。

在这里插入图片描述

  • 下载完成后,我们解压到磁盘,我这里是 F 盘的 install 目录,如下图所示
F:\install\ant\apache-ant-1.10.9
  • 新建环境变量 ANT_HOME = F:\install\ant\apache-ant-1.10.9,在环境变量 PATH 中添加 %ANT_HOME%\bin
  • 此时,我们在 cmd 命令窗口输入 ant -version 查看 ant 是否安装成功,如下图
    在这里插入图片描述

ANT 工程构建

  • 我们新建一个文件夹 D:\Java\AntTest
  • 在 AntTest 目录下新建目录 src
  • 在 src 目录下我们新建一个 java 文件 Calculator.java
public class Calculator {
    public double add(double x, double y) {
        return x + y;
    }

    public double sub(double x, double y) {
        return x - y;
    }
}

在这里插入图片描述

  • 关键的一步是创建一个构建配置文件,我们一般命名为 build.xml, build.xml 中具备几个关键节点,build.xml 文件放在工程根目录下,xml 文件如下所示
<?xml version="1.0" encoding="UTF-8" ?>
<project name="AntTest" default="run" basedir=".">
    <!-- set variables -->
    <property name="src" value="src/" />
    <property name="dest" value="classes" />
    <property name="jar" value="Calculator.jar" />
    <!-- initialize -->
    <target name="init">
        <mkdir dir="${dest}"/>
    </target>
    <!--  compile settings -->
    <target name="compile" depends="init">
        <javac srcdir="${src}" destdir="${dest}" />
    </target>
    <!--  build settings -->
    <target name="build" depends="compile">
        <jar jarfile="${jar}" basedir="${dest}" />
    </target>
    <!-- run settings -->
    <target name="run" depends="build">
        <java classname="Calculator" classpath="${jar}"/>
    </target>
    <!-- clean settings -->
    <target name="clean" depends="run">
        <delete dir="${dest}" />
        <delete file="${jar}" />
    </target>
    <!-- rerun settings -->
    <target name="rerun" depends="clean,run">
        <ant target="clean" />
        <ant target="run" />
    </target>
</project>
  • ant 命令构建步骤
    1)init
    2)compile
    3)build
    4)run
    5)clean
    6)rerun
  • 打开 cmd 命令窗口,输入 ant,进行构建,如下所示
D:\Java\AntTest>ant
Buildfile: D:\Java\AntTest\build.xml

init:
    [mkdir] Created dir: D:\Java\AntTest\classes

compile:
    [javac] D:\Java\AntTest\build.xml:13: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to D:\Java\AntTest\classes

build:
      [jar] Building jar: D:\Java\AntTest\Calculator.jar

run:
     [java] java.lang.NoSuchMethodException: Calculator.main([Ljava.lang.String;)
     [java]     at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194)
     [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:861)
     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:231)
     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
     [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
     [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at java.lang.reflect.Method.invoke(Method.java:498)
     [java]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:350)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:449)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:470)
     [java]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401)
     [java]     at org.apache.tools.ant.Project.executeTarget(Project.java:1374)
     [java]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
     [java]     at org.apache.tools.ant.Project.executeTargets(Project.java:1264)
     [java]     at org.apache.tools.ant.Main.runBuild(Main.java:827)
     [java]     at org.apache.tools.ant.Main.startAnt(Main.java:223)
     [java]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
     [java]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
     [java] Caused by: java.lang.NoSuchMethodException: Calculator.main([Ljava.lang.String;)
     [java]     at java.lang.Class.getMethod(Class.java:1786)
     [java]     at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:145)
     [java]     ... 21 more
     [java] Java Result: -1

BUILD SUCCESSFUL
Total time: 0 seconds

D:\Java\AntTest>

默认运行 run 步骤,我们构建成功,输出 Calculator.jar 包,如下所示
在这里插入图片描述
当然我们可以指定 ant 操作,对于 build.xml 中步骤的定义
1)ant init 执行定义的初始化操作
2)ant run 执行编译构建,生成 jar 包
3)ant clean 清除构建内容
4)ant rerun 重新编译构建

到这里,我们的 Ant 构建工程的讲解也就结束了,祝愉快!


上一节:第一个程序 Hello World!
下一节:Maven 构建工程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值