1、生成文件结构
<project.../> 生成项目_name、description、basedir、default属性;
<target.../> 生成目标_name、depends、if、unless、description属性;
任务(task)<name attribute="value" />
特别说明:Ant生成文件的基本结构是Project元素里包含多个target元素,而每个target元素里包含多个任务;
(1)、Javac:编译;
<project.../> 生成项目_name、description、basedir、default属性;
<target.../> 生成目标_name、depends、if、unless、description属性;
任务(task)<name attribute="value" />
特别说明:Ant生成文件的基本结构是Project元素里包含多个target元素,而每个target元素里包含多个任务;
2、Ant任务分类
(1)、核心任务:Ant自带任务;
(2)、可选任务:第三方任务,需要附加JAR文件;(3)、用户自定义任务:用户自己开发的任务;
3、Ant核心任务(task)(1)、Javac:编译;
(2)、java:运行java类;
(3)、jar:生成JAR包;
(4)、sql:执行一条或多条SQL语句;
(5)、echo:输出某个字符串;
4、生成文件代码
5、build.xml文件
<span style="font-size:18px;"><?xml version="1.0" encoding="GBK"?>
<!-- 定义生成文件的project根元素,默认的target为空 -->
<project name="antQs" basedir="." default="">
<!-- 定义三个简单属性 -->
<property name="src" value="src"/>
<property name="classes" value="classes"/>
<property name="dest" value="dest"/>
<!-- 定义一组文件和目录集 -->
<path id="classpath">
<pathelement path="${classes}"/>
</path>
<!-- 定义help target,用于输出该生成文件的帮助信息 -->
<target name="help" description="打印帮助信息">
<echo>help - 打印帮助信息</echo>
<echo>compile - 编译Java源文件</echo>
<echo>run - 运行程序</echo>
<echo>build - 打包JAR包</echo>
<echo>clean - 清除所有编译生成的文件</echo>
</target>
<!-- 定义compile target,用于编译Java源文件 -->
<target name="compile" description="编译Java源文件">
<!-- 先删除classes属性所代表的文件夹 -->
<delete dir="${classes}"/>
<!-- 创建classes属性所代表的文件夹 -->
<mkdir dir="${classes}"/>
<!-- 编译Java文件,编译后的class文件放到classes属性所代表的文件夹内 -->
<javac destdir="${classes}" debug="true" includeantruntime="yes"
deprecation="false" optimize="false" failοnerrοr="true">
<!-- 指定需要编译的Java文件所在的位置 -->
<src path="${src}"/>
<!-- 指定编译Java文件所需要第三方类库所在的位置 -->
<classpath refid="classpath"/>
</javac>
</target>
<!-- 定义run target,用于运行Java源文件,
运行该target之前会先运行compile target -->
<target name="run" description="运行程序" depends="compile">
<!-- 运行lee.HelloTest类,其中fork指定启动另一个JVM来执行java命令 -->
<java classname="lee.HelloTest" fork="yes" failοnerrοr="true">
<classpath refid="classpath"/>
<!-- 运行Java程序时传入2个参数 -->
<arg line="测试参数1 测试参数2"/>
</java>
</target>
<!-- 定义build target,用于打包JAR文件,
运行该target之前会先运行compile target -->
<target name="build" description="打包JAR文件" depends="compile">
<!-- 先删除dest属性所代表的文件夹 -->
<delete dir="${dest}"/>
<!-- 创建dest属性所代表的文件夹 -->
<mkdir dir="${dest}"/>
<!-- 指定将classes属性所代表的文件夹下的所有
*.classes文件都打包到app.jar文件中 -->
<jar destfile="${dest}/app.jar" basedir="${classes}"
includes="**/*.class">
<!-- 为JAR包的清单文件添加属性 -->
<manifest>
<attribute name="Main-Class" value="lee.HelloTest"/>
</manifest>
</jar>
</target>
<!-- 定义clean target,用于删除所有编译生成的文件 -->
<target name="clean" description="清除所有编译生成的文件">
<!-- 删除两个目录,目录下的文件也一并删除 -->
<delete dir="${classes}"/>
<delete dir="${dest}"/>
</target>
</project></span>