1.ant是什么
ant的介绍:
Ant是一个类似make的工具,用来编译、运行、测试java程序
构建、包装和发布过程中几乎每一件事都可以由Ant的任务来处理.
那么我们为什么要使用ant?
关于这一点,一般是开发者的时间如果比较长的话,应该会有深刻的体会,因为我们需要一个个来编译需要的java文件是一件很麻烦的事。
2.安装ant
主要有下面几步:
1)官网上下载ant
2)配置环境变量
ANT_HOME:D:\apache-ant-1.9.7
path :%ANT_HOME%/bin
3)在命令行中输入ant
3.ant的核心概念
XML:构建文件是以XML文件来描述的
project:每个构建文件包含一个工程
depends:每个工程包含若干个目标(target)。目标可以依赖于其他的目标
task:目标包含一个或多个任务(task)
易于扩展:易于使用Java语言增加新的任务:(自定义)。
语法简单:构建文件短小精悍,语法直观且易于理解
3.ant的使用
1)新建java项目,新建类,新建build.xml
4.build.xml的说明
在这之前,先来说说它的配置文件build.xml
build.xml文件都包含一个project和至少一个target元素,target元素中包含一个或多个任务元素,任务是一段可执行的代码。
target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}" />
</target>
Ant的所有内容必须包含在这个里面,name是我们给它取的名字, basedir看名字就知道是工作的根目录。其中的”.”代表当前目录。 default代表默认要做的事情。
<property name="src" value="src"></property>
<property name="dest" value="classess">
</property>
<property name="hello_jar"value="htest.jar"> </property>
类似程序中的变量,想一下变量的作用
<target name="init">
<mkdir dir="${dest}" />
</target>
目的:创建一个文件夹
把我们想做的每一件事写成一个target,它有一个名字。使用mkdir来创建文件夹。 将第一个target命名为init,是一个很好的做法,其他的target依赖这个初始化target
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"> </javac>
</target>
目的:编译程序,把源程序编译到目标地点。
depends 是它所依赖的target,在执行这个compile的target之前,ant会先检查init是否已经被执行过,如果执行过,着直接执行compile,如果没有执行过,就会执行它依赖的target,然后再执行本身的target
<target name="jar" depends="compile">
<jar destfile="${hello_jar}" basedir="${dest}">
</jar>
</target>
目的:打jar 包
<target name="run" depends="jar">
<java classname="com.hlf.test.AntTest" classpath="${hello_jar}">
</java>
</target>
目的:运行jar包内的程序
<target name="clean">
<delete dir="${dir}">
</delete>
<delete dir="${hello_jar}">
</delete>
</target>
目的:删除生成的文件
<target name="rerun" depends="clean,run">
<ant target="clean">
</ant>
<ant target="run">
</ant>
</target>
目的:再次运行,这里显示了如何在一个 target 里边调用其他的 target
完整的build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="myProject" default="run" basedir=".">
<property name="src" value="src">
</property>
<property name="dest" value="classess">
</property>
<property name="hello_jar" value="htest.jar">
</property>
<target name="init">
<mkdir dir="${dest}" />
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"> </javac>
</target>
<target name="jar" depends="compile">
<jar destfile="${hello_jar}" basedir="${dest}">
</jar>
</target>
<target name="run" depends="jar">
<java classname="com.hlf.test.AntTest" classpath="${hello_jar}">
</java>
</target>
<target name="clean">
<delete dir="${dir}">
</delete>
<delete dir="${hello_jar}">
</delete>
</target>
<target name="rerun" depends="clean,run">
<ant target="clean">
</ant>
<ant target="run">
</ant>
</target>
</project>
开始运行,最后运行的结果
产生的文件