Ant 构建工程
Ant 和 maven,gradle都是 Java 工程的构建工具,如果您以前使用过 make,那么关于构建工具的作用也就了然于胸了。如果您以前没有接触过,那么这篇文章就会帮助你了解 Ant 并让您能够手动去使用 Ant 构建 Java 工程。
Ant 安装
Ant 是跨平台的,所以您可以在 Windows 和 Linux 等操作系统上安装,我们的例子采用的是 Windows 10 系统, JDK1.8 版本环境。
- Ant 下载地址, Ant 版本如下图所示
- 下载完成后,我们解压到磁盘,我这里是 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 构建工程