ant构建文件时基于xml文件编写的,默认名称为build.xml
bulid.xml示例
<?xml version="1.0"?>
<project name="helloWorld" default="copy" >
<target name="copy" description="copy">
<copy todir="D:\AntTest">
<fileset dir="D:\JavaTest"/>
</copy>
</target>
</project>
ant 默认寻找build.xml
ant targetName 默认执行build.xml某个targe下的动作
如果使用其它文件名 则用 ant -f hello.xml targetName 来执行某个targe
build.xml结构介绍
project元素:
有name default basedir属性
default属性指定默认执行的target名
basedir默认值为build.xml所在目录的父目录
target元素:
target有 name depends if unless description
depends 指定依赖关系 被依赖的target先执行 这样就可以在ant时候 由依赖关系触发所有target执行
if unless 指定在某些条件执行此target 二者意义相反
description 用于对target进行简单的描述 没有实际意义
property元素:
<property name="name" value="haha">
定义一个变量在程序中可以用${name}取得该值
ant 常用任务
copy:
<copy file="" tofile=""/> 复制文件
<copy todir="">
<fileset dir=""/>
</copy>
fileset是属性dir指定的目录下的文件,上面这个配置将会把 dir指定的目录下的文件复制到todir目录下
但是如果dir目录仍有目录,那么会保持原来的结构,这里的 fileset中的 目录和文件都是一样看待的,但是是有结构的
如果要对fileset进行筛选 haha为dir下的一个目录 haha下面仍有文件结构
<fileset dir="" includes="haha"/> 只会复制一个 haha空目录到todir下
<fileset dir="" includes="haha/"/> 会复制haha以及haha下面的所有结构
<fileset dir="" includes="haha/*"/> 会复制haha下面一级的所有内容 如果有目录 不会复制目录中的内容
<fileset dir="" includes="haha/**"/> 同haha/ haha以及haha下的所有内容都会复制到目标目录
<fileset dir="" includes="haha/*****"/> 同 haha/*
delete
删除目录 <delete dir=""/>
删除文件<delete file=""/>
mkdir
<mkdir dir=""/>
echo
<echo message="" file="" append="true"/>
利用Ant构建和部署java程序
<?xml version="1.0"?>
<project name="helloWorld" default="jar" >
<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="Test">
<classpath>
<pathelement path="build/classes"/>
</classpath>
</java>
</target>
<target name="jar" depends="run">
<jar destFile="helloworld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-class" value="HelloWorld"/>
</manifest>
</jar>
</target>
</project>
javac 编译
java 运行
jar 打包成jar文件
<?xml version="1.0"?>
<project name="helloWorld" default="war" >
<target name="war">
<war destfile="antwebproject.war" webxml="AntTest/WEB-INF/web.xml">
<fileset dir="AntTest" includes="**/*.jsp"/>
<lib dir="AntTest/WEB-INF/lib"/>
<classes dir="AntTest/WEB-INF/classes"/>
</war>
</target>
</project>
war 打包javaee项目
怎么做呢 javaee项目的框架ant是知道的 你所提供的参数就是将具体的内容都给它 就可以了 具体就是 jsp lib/*.jar classes
具体的写法不用记 理解即可 用到时再拿出来看
以上内容总结自网络