Ant安装
1 下载解压
2 环境变量中设置ANT_HOME 并在Path中添加%ANT_HOME%\bin;
3:设置jdk相关环境变量JAVA_HOME\Path\classpath
classpath: .;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\tools.jar
Ant命令参数
例子ant –buildfile myant.xml clean
或者用默认build.xml如ant clean jar ,clean和jar均为target名
常用的参数有
-version
- buildfile 指定ant需要处理的构建文件,默认为build.xml
-logfile filename 将日志输出到指定文件
Project标签
<project name=”MyProject” default=”all” basedir=”.”> </project>
Name属性为工程提供名称
Default指构建文件中的一个target名,默认开始执行此target
Basedir 定义了工程的根目录,一般情况下为”.”,相当于目录的参考点
Property标签
常见1.<property name=”src.dir” value=”src”/>
2.<property file=”user.properties”/>
第一个正常赋值后面可以如此使用${src.dir}
第二个,加载了一个配置文件,不如配置文件中有mydir=/ome/test,后面也如此使用${mydir}
path
<path id=”classpath”>
<filesetdir=”${src.lib}”>
<includename=”**/*.jar”/>
</fileset>
<path>
Javac
<javac destdir=”${build.classes}”
srcdir=”${src.dir}” //多个时src=”${src}:${src2}”
debug=”on”>
<exclude name=”ibot/modules/**”/>
<classpath refid=”classpath”/>
</javac>
编译${src.dir}中的源码(不包括ibot/modules下文件),生成结果放入${build.classes}目录中
Jar
1.<jar jarfile=”${build.lib}/ibot.jar”
basedir=”${build.classes}”
manifest=MANIFEST.MF”” >
<manifest>
<attribute name=” Main-class” value=”ibot”>
</manifest>
<exclude name=”ibot/modules/**” />
<jar>
打成jar包,同时在jar包中生成META_INF/MANIFEST.MF其中内容为Main-class:ibot
2.多处时
<jardestfile="${dist}/lib/app.jar">
<fileset dir="${build}/classes"excludes="**/Test.class" />
<fileset dir="${src}/resources"/>
</jar>
java
1.<javaclassname="test.Main">
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="build/classes"/>
</classpath>
</java>
classname中指定要执行的类,classpath设定要使用的环境变量
Javadoc
<mkdir dir=”${doc.dir}/api”
<javadoc packaename=”ibot.*”
sourcepath=”${src.dir}”
destdir=” ${doc.dir}/api”
author=”true”
version=”true”
user=”true”>
<classpath>
<filesetdir="${lib}">
<includename="*.jar"/>
</fileset>
<filesetdir="${tomcat-root}/lib">
<includename="*.jar"/>
</fileset>
</classpath>
</javadoc>
war
项目机构如下:
<?xmlversion="1.0"?>
<project default="war" basedir="." name="antwebtest">
<property name="classes" value="build/classes"/>
<property name="build" value="build"/>
<property name="lib" value="WebRoot/WEB-INF/lib"/>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<mkdir dir="${classes}"/>
<javac srcdir="src" destdir="${classes}"/>
</target>
<target name="war" depends="compile">
<war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">
<!-- 拷贝WebRoot-->
<fileset dir="WebRoot" includes="**/*.jsp"/>
<fileset dir="WebRoot" includes="image/*"/>
<!-- 拷贝lib目录下的jar包-->
<lib dir="${lib}"/>
<!-- 拷贝build/classes下的class文件-->
<classes dir="${classes}"/>
</war>
</target>
</project>
mkdir
<mkdirdir="build/classes"/>
创建一个目录,如果他的父目录不存在,也会被同时创建。
copy
(1) 拷贝单个的文件:
<copy file="myfile.txt"tofile="mycopy.txt"/>
(2) 拷贝单个的文件到指定目录下
<copy file="myfile.txt"todir="../some/other/dir"/>
(3) 拷贝一个目录到另外一个目录下
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
(4) 拷贝一批文件到指定目录下
<copy todir="../dest/dir">
<fileset dir="src_dir">
<excludename="**/*.java"/>
</fileset>
</copy>
<copy todir="../dest/dir">
<filesetdir="src_dir" excludes="**/*.java"/>
</copy>
(5) 复制文件过程中增加.Bak后缀
< copy todir="my/src/dir">
<filesetdir="my/src/dir">
<exclude name="**/*.bak"/>
</fileset>
<mappertype="glob" from="*" to="*.bak"/>
</ copy >
copy
delete
(1) 删除一个文件
<deletefile="/lib/ant.jar"/>
(2) 删除指定目录及其子目录
<delete dir="lib"/>
(3) 删除指定的一组文件
<delete>
<fileset dir="." includes="**/*.bak"/>
</delete>
move
(1) 移动一个文件(重命名)
<move file="file.orig"tofile="file.moved"/>
(2) 移动一个文件到另一个文件夹下面
<move file="file.orig"todir="dir/to/move/to"/>
(3) 将一个目录移到另外一个目录下
<movetodir="new/dir/to/move/to">
<filesetdir="src/dir"/>
</move>
(4) 将一组文件移动到另外的目录下
<move todir="some/new/dir">
<fileset dir="my/src/dir">
<includename="**/*.jar"/>
<excludename="**/ant.jar"/>
</fileset>
</move>
(5) 移动文件过程中增加.Bak后缀
<move todir="my/src/dir">
<filesetdir="my/src/dir">
<exclude name="**/*.bak"/>
</fileset>
<mappertype="glob" from="*" to="*.bak"/>
</move>
Echo输出
<echo message="The base dir is: ${basedir}"/>