一、<project>标签
<project>标签是构建文件的根标签,每个构建文件对应一个项目,它的几个常用属性如下
name:表示project项目名
default:表示该Ant项目启动时默认执行的任务名,如果没有该参数,则需要在项目运行时手动指定执行的任务
basedir:表示项目执行的默认目录
<?xml version="1.0"?>
<project name="hello" default="sayBaseDir" basedir="C:\\Users\\Administrator\\Desktop">
<target name="sayBaseDir">
<echo message="The base dir is: ${basedir}"/>
</target>
</project>
二、<target>标签
<target>标签表示是一个个的待执行的任务,在一个project标签下可以有多个target标签。同时,可以指定一个target依赖于另一个target,这样在执行时会先执行依赖的那个任务,然后才执行目标任务。这个属性是非常有用的,比如要编译执行一个Java文件,那么我们的执行顺序就应该是先编译然后再执行,这时我们就可以让执行class文件的那个任务依赖于编译Java文件的那个任务。target标签的几个常用属性如下:
name:表示任务名
depends:表示该任务依赖的任务名
if:表示仅当属性存在时才执行这个任务
unless:跟if的含义相反,表示当属性没被设置时才执行这个任务
<?xml version="1.0"?>
<project name="targetStudy" default="targetB">
<property name="zifangsky" value="www.zifangsky.cn" />
<target name="targetA" if="zifangsky">
<echo message="Java Version: ${ant.java.version}" />
</target>
<target name="targetB" depends="targetA" unless="xxx">
<echo message="The base dir is: ${basedir}" />
</target>
</project>
三、<mkdir>标签
<mkdir>标签顾名思义,可以创建一个文件夹
<mkdir dir="build/classes"/>
四、<delete>标签
<delete>标签可以对文件或者文件夹进行删除,常用属性如下:
file:表示要删除的文件
dir:表示要删除的目录
includeEmptyDirs:表示是否删除指定目录中的空目录,如:includeEmptyDirs=”true”
failonerror:表示在碰到错误时是否停止,默认是自动停止
<delete dir="build/classes" />
五、<copy>标签
<copy>标签用于复制文件或者目录,常用属性如下:
file:表示源文件
tofile:表示目标文件
todir:表示目标目录
overwrite:表示是否覆盖目标文件,默认是不覆盖
复制单个文件:
<copy file="old.txt" tofile="new.txt" />
复制一个文件到另一个目录:
<copy file="old.txt" todir="test1/addtest" overwrite="true" />
对目录进行复制:
<copy todir="test1/addtest">
<fileset dir="addtest"/>
</copy>
六、<move>标签
<move>标签用于移动文件或者目录,常用属性跟标签差不多
<move file="sourcefile" tofile="destfile" />
<move file="sourcefile" todir="destdir" />
<move todir="newdir" >
<fileset dir="olddir" />
</move>
七、<filelist>标签
<filelist>标签表示一个文件列表,常用属性如下:
dir:表示文件目录
files:用逗号分隔的一个文件列表
refid :表示对某处定义的一个的引用
<filelist id="resourceFiles" dir="${res.src}" files="web.xml,application.xml" />
<filelist refid="resourceFiles" />
<filelist id="resourceFiles" dir="${res.src}">
<file name="web.xml" />
<file name="application.xml" />
</filelist>
八、<fileset>标签
<fileset>标签表示一种类型的文件列表,常用几个属性如下:
include:表示文件模式列表
exclude:表示不包含这些模式的文件列表
<copy todir="${buildwar.dest}/WEB-INF/classes" overwrite="true">
<fileset dir="${build.bin}">
<include name="**/*.class" />
</fileset>
</copy>
<copy todir="${buildwar.dest}" overwrite="true">
<fileset dir="${webapp.dir}">
<exclude name="/WEB-INF/classes/**" />
</fileset>
</copy>
<path id="buildpath">
<fileset refid="lib.runtime"/>
<fileset refid="lib.lib"/>
</path>
九、<property>标签
<property>标签用于定义一个参数
<property name="zifangsky" value="www.zifangsky.cn" />
十、<path>标签
<path>标签用于定义一个路径
<path id="classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${tomcat.home}/lib">
<include name="**/*.jar" />
</fileset>
</path>
十一、<javac>标签
<javac>标签用于编译Java文件,常用几个属性如下:
srcdir:表示源代码路径
destdir:表示生成的class文件的路径
<target name="compile" depends="clean">
<mkdir dir="build/classes" />
<javac srcdir="src" destdir="build/classes" />
</target>
十二、<java>标签
<java>标签用于执行.class文件,常用属性如下:
classname :表示将执行的类名
jar:表示包含该类的JAR文件名
classpath:表示用到的类路径
<target name="run" depends="compile">
<java classname="javase.base.Demo2">
<classpath>
<pathelement path="build/classes/" />
</classpath>
</java>
</target>
十三、<jar>标签
<jar>标签用于将class文件打包成jar包,常用属性如下:
basedir:表示待归档的目录
destfile:表示生成的JAR文件名
<?xml version="1.0"?>
<project name="javacTest" default="makeJar" basedir=".">
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="run" depends="compile">
<java classname="javase.base.Demo2">
<classpath>
<pathelement path="build/classes/"/>
</classpath>
</java>
</target>
<target name="makeJar" depends="run">
<jar destfile="Demo.jar" basedir="build/classes">
<manifest>
<attribute name="Main-class" value="javase.base.Demo2"/>
</manifest>
</jar>
</target>
</project>