ant学习笔记

ant是什么?


apache ant是一个基于java的生成工具。据最初的创始人James Duncan Davidson介绍,ant是
Another neat tool(另一个整洁的工具)的缩写。


Ant 很强大,除了主要用于java项目的构建发布。还可以用于一般的文件系统操作,比如打包压缩文件,备份文件格式为

 

zip或rar,而且ant是跨平台的。而且ant支持扩展,可以自定义任务,从而扩展ant的target动作。同时支持将生成文件

 

链接起来,ant的build.xml文件可以将所有动作放在一个产生文件中,亦可以包含其他的subbuild.xml,这样可以很好的

 

组织项目。还可以与cvs结合使用。

 

ANT的使用:


目标出现在生成文件中的顺序并不重要;执行顺序是有depends属性唯一确定的。
ant的命令参数选项有:-D,它用于设置随后可以在生成文件中使用的属性。这对于配置您想要以某种方式开始的生成
过程是非常有用的。例如,为了将name属性设置为某个特定的值,您会使用一个类似下面这样的选项:

 

-Dmetal-beryllium

 

这个功能可用于覆盖生成文件中的初始属性设置。正如前面指出过的,属性的值一经设置就不能改变。-D标志在读取生成
文件中的任何消息之前设置某个属性;由于生成文件中的指派落在这个初始指派之后,因此他不会改变其值。

像Ant一样,javac编译器本身也是用java语言实现的。这对Ant中的javac任务的使用来说非常有利,因为它通常调用Ant

 

运行所在的相同java虚拟机中的编译器累了。在每次需要编译java代码时,其他生成工具通常需要运行一个新的javac进

 

程,从而需要一个新的jvm实例。但是在使用Ant的情况下,只需要单个jvm实例,它既用于运行Ant本身,也用于执行所有

 

必需的编译任务(以及其他相关任务,比如处理jar文件)。这是一种高效的多的资源使用方式,能够极大地缩短项目生成时间。


总而言之,Ant的javac任务的默认行为是调用运行Ant本身的任何jvm的标准编译器。

ant的常用功能:
模式匹配和文件选择器,将生成任务链接起来以及与CVS知识库协同工作
fileset元素默认情况下包含指定src目录下的所有文件,因此为了仅选择java文件,我们对模式使用一个include元素。类似地,我们可以对另一个模式添加一个exclude元素,从而潜在地排除include指定的匹配项。甚至可以指定多个include和exclude元素:这样将得到一组文件和目录,他们包含include模式的所有匹配项的并集,但排除了exclude模式的所有匹配项。文件集用于指定一组文件,并且这个组的内容可以使用include和exclude模式来指定。也可以结合成为选择器的特殊元素使用include和exclude来选择ant文件。


ant可用的核心选择器列表:
size:根据文件的大小选择文件。
contains:包含给定文本字符串。
filename:name属性指定文件名要与之匹配的模式。本质上与include元素相同。
date:基于其最后修改日期选择文件。
还有:present,depend,depth
还可以通过在一个选择器容器内嵌套一个或多个选择器来组合选择器。最常用的选择器容器and仅选择它包含的所有选择器都选择了的文件。其他选择器容器包括or,not,none和majority


示例如下:

 

<fileset dir="dir">
    <and>
        <contains text="hello"/>
        <size value="512" when="more">
    </and>
</fileset>

 

ant的通配符支持:


除了对文件名使用通配符匹配。也可以对目录执行模式匹配。例如,模式src*/*.java将匹配带src前缀的任何目录中的所有java文件。还有另一种模式结构:**,它匹配任意数量的目录。例如,模式**/*.java将匹配当前目录结构下的所有java文件。

你可能感兴趣的:(jvm,xml,虚拟机,ant,cvs)