Apache ANT(Another Neat Tool - 另一个 Neat 工具)是一个 Java 库和命令行工具,用于自动化软件构建过程。
它主要被开源社区用来编译和构建 Java 应用程序。
Apache ANT 是独立于平台的。
它使用 XML 文件 build.xml 为构建过程创建脚本。
可以在任何平台上使用相同的 build.xml 文件来构建 Java 应用程序。
在本文中,我们将在 RHEL/CentOS 7.6 机器上安装 Apache ANT 并创建一个 build.xml 文件来编译和构建一个简单的 Java 应用程序。
安装环境
Apache ANT 没有任何特殊的系统要求。
本文使用的测试环境:
- 主机名 - ant-server.on-itroad.com
- IP 地址 - 192.168.1.101/24
- 操作系统 - Red Hat Enterprise Linux (RHEL) 7.6
在 RHEL/CentOS 7.6 上安装 Apache ANT
登录到服务器 ant-server.on-itroad.com上
使用 yum 命令安装 Apache ANT 包。
[root@ant-server ~]# yum install -y ant
Apache ANT 需要 Java Development Kit (JDK),因此它已经从 yum 存储库安装了可用版本的 OpenJDK。
使用 Apache ANT 编译和构建 Java应用程序
现在,我们将使用 Apache ANT 命令编译相同的应用程序。
为我们的项目创建一个 Apache ANT 构建文件 build.xml。
[root@ant-server TestApp]# vi build.xml
其中定义一些基本的目标和任务。
<project default="run"> <target name="clean"> <delete dir="build" /> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes" /> <javac srcdir="src" destdir="build/classes" includeantruntime="yes" /> </target> <target name="jar" depends="compile"> <mkdir dir="build/jar" /> <jar destfile="build/jar/test.jar" basedir="build/classes"> <manifest> <attribute name="Main-Class" value="test.TestApp" /> </manifest> </jar> </target> <target name="run" depends="jar"> <java jar="build/jar/test.jar" fork="true" /> </target> </project>
使用 Apache ANT 运行项目。
[root@ant-server TestApp]# ant Buildfile: /root/TestApp/build.xml clean: [delete] Deleting directory /root/TestApp/build compile: [mkdir] Created dir: /root/TestApp/build/classes [javac] Compiling 1 source file to /root/TestApp/build/classes jar: [mkdir] Created dir: /root/TestApp/build/jar [jar] Building jar: /root/TestApp/build/jar/test.jar run: [java] Testing Apache Ant... BUILD SUCCESSFUL Total time: 1 second
我们已经使用 Apache ANT 命令成功编译和构建了我们的 Java 应用程序。
创建一个 Java 测试项目:
我们将首先创建一个简单的 Java 应用程序,然后使用 Java 命令编译和构建 JAR。
让我们为我们的项目创建所需的目录结构。
[root@ant-server ~]# mkdir -p ~/TestApp/{src/test,build/classes,build/jar}
其中:
src/test 目录用于保存我们的 Java 应用程序的源代码,例如:TestApp。
build/classes 目录用于放置已编译的 Java 类。
build/jar 目录用于从编译的 Java 类生成 JAR(Java 存档)。
检查目录结构
[root@ant-server ~]# cd TestApp [root@ant-server TestApp]# ls build src [root@ant-server TestApp]#
在 src/test 目录中创建一个文件。
[root@ant-server TestApp]# vi src/test/TestApp.java
并在此处编写一些 Java 代码。
package test; public class TestApp { public static void main(String[] args) { System.out.println("Testing Apache Ant..."); } }
编译 TestApp.java 并检查任何可能的错误。
[root@ant-server TestApp]# javac -sourcepath src -d build/classes src/test/TestApp.java [root@ant-server TestApp]# ls build/classes/ test [root@ant-server TestApp]# ls build/classes/test/ TestApp.class
我们的代码已经编译成功。
现在,执行编译的应用程序。
[root@ant-server TestApp]# java -cp build/classes/ test.TestApp Testing Apache Ant...
由于我们的应用程序运行良好,我们现在可以从编译的类创建一个 JAR 文件。
要创建 JAR,我们需要为 Java 项目创建 JAR 列表。
[root@ant-server TestApp]# echo "Main-Class:test.TestApp" > mymanifest
现在创建一个 JAR 文件。
[root@ant-server TestApp]# jar cvfm build/jar/test.jar mymanifest -C build/classes/ . added manifest adding: test/(in = 0) (out= 0)(stored 0%) adding: test/TestApp.class(in = 434) (out= 299)(deflated 31%)
执行 JAR 文件。
[root@ant-server TestApp]# java -jar build/jar/test.jar Testing Apache Ant...
我们已经成功编译了我们的 Java 代码,然后使用 Java 命令构建了一个 JAR 文件。