首页 > 代码库 > ant 学习笔记

ant 学习笔记

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="http://www.mamicode.com/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="http://www.mamicode.com/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


具体的写法不用记  理解即可 用到时再拿出来看

以上内容总结自网络