Apache Ant的使用(1)——基础使用教程

一、什么是Ant

Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。
我们在使用Eclipse开发Android应用时,Eclipse使用的项目构建工具就是Ant。
用户群:大多数的Java设计都被用于管理大量信息流,例如纽约州就使用Apache Ant去管理美国最大的青年计划,每天可以实时更新超过25万学生的记录。
只要使用过Linux系统的读者,应该知道 make这个命令。当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就 是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有 一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,同样也 是基于这些缺陷对Ant做了更好的设计。

二、Ant的优点

Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点:
跨平台性。Ant是纯Java语言编写的,所以具有很好的跨平台性。
操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件 是XML格式的文件,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环 境中去。

三、Ant的基本使用方法

下面介绍Ant的基本使用方法:
1、首先需要从官网下载apache ant,地址为: Apache Ant - Binary Distributions
2、下载后的压缩文件直接解压后放到硬盘的目录下就行,然后是配置Ant的环境变量,因为我们需要在命令行下使用ant命令,所以需要将ant的目录加入path环境变量中,步骤如下(windows10系统):
(1)鼠标右击桌面“此电脑”,选择属性,然后在出现的窗口左侧选择“高级系统设置”,在弹出的窗口中选择“环境变量”
(2)在环境变量配置窗口中的“用户变量”中新增一个变量名为ANT_HOME,值为Ant解压后的目录,如下图所示:
然后在“用户变量”下找PATH变量,如果没有就新增一个PATH变量,如果有就直接在PATH变量中加入新的值,值为“%ANT_HOME%\bin”
经过上面2步就配置好了Ant的环境变量了,cmd中执行ant -version命令后,如下图所示则表示配置成功:
3、开始使用Ant。
Ant的核心就是配置文件build.xml,在build.xml文件中配置相关的任务后,使用ant命令即可自动执行,所以我们需要掌握ant的相关配置,这里先在桌面新建一个目录TestAnt,然后进入该目录,新建一个build.xml文件,并加入如下内容:
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
	<target name="test">
		<echo message="test echo messsage, basedir=${basedir}" />
	</target>
</project>
在命令行下我们进入上面build.xml所在的目录,然后执行ant命令,会出现如下图所示的结果:
下面就来解释上面的build.xml文件的配置:
(1)build.xml需要遵循一定的格式,这样ant命令才能正确执行,一个build.xml文件是以<project>标签为根节点的,<project>节点中可以指定name属性,表示项目的名称,basedir代表项目的根目录,default表示项目的默认任务名,这里的default属性值为test,则执行ant命令时会找default对应的target去执行(如果ant命令没有指定任务名的话)。
(2)<project>标签中定义了一个<target>标签,该标签表示的就是一个任务,<target>标签中的name属性表示任务名,我们可以在命令行下直接使用ant + 任务名来执行某个特定的任务,例如上面的例子中,我们可以使用ant test命令去执行name值为test的target任务,由于我们在<project>标签中配置了default属性为test,所以在命令行下只需要执行ant命令就可以运行test任务了。
(3)<echo>标签表示在命令行下输出,类似于java中的System.out.println(),在<echo>标签中配置message属性后即可在命令行下打印该属性的值。如上图中显示的[echo],即为我们配置的message属性的值。
(4)使用${}可以获取某个变量的值,花括号中为变量名,如上图中打印出的C:\Users\yubo7\Desktop\TestAnt,即为basedir的值,由于在<project>标签中我们给basedir属性的值为空,所以basedir的值默认为build.xml所在的路径。
上面的例子是一个最基本的build.xml文件的结构,build.xml文件还有很多配置项,下面举例几个配置项:
<property>标签,用于声明键值对:
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
	<target name="test-property">
		<property name="name" value="zhangsan" />
		<property name="age" value="25" />
		<echo message="this is target test2." />
		<echo message="java version: ${ant.java.version}" />
		<echo message="project name: ${ant.project.name}" />
		<echo message="ant file: ${ant.file}" />
		<echo message="name = ${name}, age = ${age}" />
	</target>
</project>
执行ant test-property命令后,结果如下图:

<property>标签用于声明一个属性,其中name为属性名,value为属性值,访问属性值时使用${属性名}。
<copty>标签,用于文件拷贝:
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
	<target name="test-copy">
		<copy file="test.txt" tofile="build/test.txt" />
	</target>
</project>
执行ant test-copy命令后,结果如下图所示:

<copy>标签表示文件或文件夹的拷贝,上面的配置中,file属性表示要拷贝的文件路径,tofile属性表示要拷贝的目的文件路径。如果待拷贝的文件不存在,则命令执行会失败,如果目的文件路径不存在,则命令执行时会自动创建目录。如果是要拷贝整个目录,需要下面的配置:
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
	<target name="test-copy-dir">
		<copy todir="build/dest_dir">
			<fileset dir="origin_dir" />
		</copy>
	</target>
</project>
执行ant test-copy-dir命令后,结果如下图所示:
和单个文件的拷贝类似,如果待拷贝的目录不存在,则命令执行会失败,如果目的路径不存在,则命令执行时会自动创建目录。
<delete>标签,用于文件或文件夹的删除:
 
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
	<!-- 删除单个文件 -->
	<target name="test-del-file">
		<delete file="test.txt" />
	</target>

	<!-- 删除整个目录 -->
	<target name="test-del-dir">
		<delete dir="origin_dir" />
	</target>
</project>
执行ant test-del-file和ant test-del-dir命令后,结果如下图所示:

<mkdir>标签,用于目录的创建:
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
	<target name="test-mkdir">
		<mkdir dir="test" />
	</target>
</project>
执行ant test-mkdir命令后,结果如下图:

执行成功后在项目的目录下出现了test目录。
上面的几种是ant操作文件的基本用法,但是ant的用法不仅仅只有这么简单而已,ant还可以编译java文件,用法如下:
<javac>标签,用于将.java文件编译成.class文件:
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
	<target name="test-compile">
		<javac srcdir="src" destdir="build/classes/" />
	</target>
</project>
srcdir指定了java源文件所在的路径,destdir指定的是编译后的class文件存放的路径,这里做一个简单的测试,我们在src目录下新建一个Test.java文件,内容为如下代码:
public class Test {
	public static void main(String[] args) {
		System.out.println("HelloWorld!");
	}
}
然后执行ant test-compile命令,结果如下图:

第一次执行ant test-compile命令时,由于destdir目录不存在,所以编译不成功,在创建了build/classes/目录后再次执行ant test-compile,命令执行成功,并且在build/classes/目录下出现了Test.class文件。
ant能编译java文件,自然也能运行java程序,用法如下:
<java>标签,用于执行.class文件:
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
	<target name="test-run-java">
		<java classname="Test">
			<classpath>
				<pathelement path="build/classes" />
			</classpath>
		</java>
	</target>
</project>
<java>标签中的classname属性,指定了要执行的main class名,<classpath>标签中的<pathelement>标签,指定了class文件的路径。
执行ant test-run-java命令后,结果如下图:

可以看到控制台中打印了HelloWorld!,和我们在代码中打印的一样,证明这里执行了java代码。
<jar>标签,用于将java程序打包成jar文件:
<?xml version="1.0"?>
<project name="add" default="jar">
    <target name="jar">
        <jar destfile="add.jar" basedir="build/classes/">
            <manifest>
                <attribute name="Main-class" value="Add" />
            </manifest>
        </jar>
    </target>
</project>
<jar>标签中的destfile属性表示要生成的jar文件,basedir指定class文件的路径,<manifest>标签指定了jar包中的MANIFEST.MF文件中的属性,里面配置Main-class,即主class名称为"Add"。
任务依赖:
使用ant执行任务时,我们肯定不会是一个个的执行,有时候会通过一次命令执行多个任务,比如下面的过程:
新建目录->移动文件到该目录->删除原来的文件
这个过程其实是3个独立的任务,为了一次执行这3个任务,需要用到<target>标签中的depends属性,首先上代码:
<?xml version="1.0"?>
<project name="Test" default="delete-file">
	<!--创建目录-->
	<target name="mkdir">
		<mkdir dir="build/dest" />
	</target>

	<!--拷贝文件-->
	<target name="copy-file" depends="mkdir">
		<copy file="test.txt" tofile="build/dest/test.txt" />
	</target>

	<!--删除文件-->
	<target name="delete-file" depends="copy-file">
		<delete file="test.txt" />
	</target>
</project>
上面的配置文件中有三个任务,其中copy-file任务和delete-file任务中都含有depends属性,该属性表示执行<target>中的任务时,要依赖depends中指定的任务(depends中指定的任务会先执行),depends属性值就是一个任务名,所以上面的配置文件表示:执行delete-file任务时需要依赖copy-file任务,而执行copy-file任务时需要依赖mkdir任务,<project>标签中的default值为delete-file,则我们执行ant命令时,会找到delete-file任务,但是这个任务又依赖别的任务,则被依赖的任务会先执行,所以上面的配置文件执行的顺序为:mkdir-->copy-file-->delete-file。
更多Ant的用法可以参考官方文档: http://ant.apache.org/manual/index.html
以上就是ant的基本用法,下一篇中会记录Eclipse使用ant构建项目时,执行任务的过程。
 
  • 30
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: Apache NetBeans 是一款开源的集成开发环境,支持多种编程语言,包括 Java、C++、HTML、CSS、JavaScript 等。以下是 Apache NetBeans 的使用教程: 1. 下载和安装 Apache NetBeans 首先,你需要从 Apache NetBeans 的官方网站下载最新版本的软件。下载完成后,双击安装程序,按照提示完成安装。 2. 创建新项目 打开 Apache NetBeans,点击“File”菜单,选择“New Project”。在弹出的窗口中,选择你要创建的项目类型,比如 Java 项目。然后,输入项目名称和存储位置,点击“Finish”按钮。 3. 编写代码 在 Apache NetBeans 中,你可以使用代码编辑器编写代码。在左侧的项目窗口中,选择你要编辑的文件,然后在右侧的编辑器窗口中编写代码。 4. 运行程序 在 Apache NetBeans 中,你可以直接运行你的程序。点击“Run”菜单,选择“Run Project”或者“Run File”,程序就会运行起来。 5. 调试程序 如果你的程序出现了问题,你可以使用 Apache NetBeans 的调试功能来找出问题所在。在代码编辑器中设置断点,然后点击“Debug”菜单,选择“Debug Project”或者“Debug File”,程序就会在断点处停止运行,你可以逐步调试程序。 6. 导入和导出项目 如果你需要在不同的计算机上使用 Apache NetBeans,你可以将你的项目导出为 ZIP 文件,然后在另一台计算机上导入。点击“File”菜单,选择“Export Project”,选择导出的文件夹和文件名,点击“Finish”按钮。在另一台计算机上,点击“File”菜单,选择“Import Project”,选择导入的 ZIP 文件,点击“Finish”按钮。 以上就是 Apache NetBeans 的使用教程,希望对你有所帮助。 ### 回答2: Apache NetBeans是目前最流行的Java集成式开发环境(IDE),它可以帮助Java开发人员高效地编写、测试和调试Java应用程序。如果你想学习如何使用Apache NetBeans,下面是一些简单易懂的使用教程。 1. 下载安装Apache NetBeans 首先,你需要去Apache NetBeans官网下载最新版本的IDE,然后安装它。安装完毕后,打开NetBeans,你就可以开始使用了。 2. 创建Java项目 在NetBeans中,创建一个新Java项目非常简单,如果你是第一次使用NetBeans或者你没有任何项目,可以在欢迎页面中选择“创建项目”选项,如下图所示。 ![创建Java项目](https://i.imgur.com/vcQoZHX.png) 然后,在“新项目”对话框中选择“Java应用程序”,如下图所示。 ![选择Java应用程序](https://i.imgur.com/YTjDqoW.png) 接下来,输入项目名称和项目位置,并勾选“创建Main Class”,如下图所示。 ![输入项目信息](https://i.imgur.com/rJfWQST.png) 最后,点击“完成”按钮,NetBeans就会自动创建一个新的Java项目。 3. 编写代码 在NetBeans中编写代码非常简单。在左侧项目面板中,选择你的Java项目,然后在右侧编辑面板中打开Main Class。输入你的Java代码,并按“保存”按钮保存代码。 4. 运行程序 如果你想在NetBeans中运行你的Java程序,只需要单击菜单栏上的“运行”按钮即可。 ![运行Java程序](https://i.imgur.com/2N7bZyK.png) 5. 调试程序 如果你想调试Java程序,在NetBeans中也非常容易。只需要在代码中设置断点,然后单击“调试”按钮即可。 ![调试Java程序](https://i.imgur.com/9jzyWzf.png) 总的来说,Apache NetBeans非常易于使用,并且提供了丰富的功能来帮助Java开发人员更快、更高效地编写Java应用程序。如果你想学习Java编程或者提高自己的Java编程技能,建议你学习并使用Apache NetBeans。 ### 回答3: Apache NetBeans是一个开源的集成开发环境,用于Java应用程序的开发。它具有丰富和易于使用的功能,可以帮助Java程序员更轻松地编写、调试和测试他们的代码。本文将详细介绍Apache NetBeans的使用教程,帮助用户快速上手该强大的工具。 1、安装Apache NetBeans 用户可以在官网上下载最新版本的Apache NetBeans,然后按照安装向导完成安装。安装完成后,用户可以启动Apache NetBeans。 2、创建Java项目 在Apache NetBeans中创建新项目,选择Java项目类型,并在对话框中输入项目名称和路径。选择Java平台的版本,并确认项目的位置和文件夹结构。用户还可以选择添加Java框架和库,并设置项目的编译器和构建工具。 3、编写Java代码 在Apache NetBeans中,用户可以创建Java源代码文件,并开始编写Java代码。用户可以使用代码提示、代码补全和自动格式化等功能,使代码更加规范和易于阅读。 4、调试Java代码 在Apache NetBeans中,用户可以使用调试器调试Java代码。用户可以在代码中加断点,并使用调试器跟踪代码执行过程,以便找到和纠正代码中的错误。 5、运行Java项目 在Apache NetBeans中,用户可以轻松地运行Java项目。用户可以选择运行选项,并查看控制台输出,以便了解程序的运行状态和结果。 总之,Apache NetBeans是一个功能齐全的Java集成开发环境,不仅易于使用,而且可以帮助Java程序员更轻松地开发优秀的Java应用程序。希望该教程能够帮助用户更好地掌握Apache NetBeans的技能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yubo_725

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值