分享

Ant简介

 figol 2006-02-12

.Ant简介:

       Ant----Another Neat Tool,是一个基于Java的跨平台构建工具,作为一个优秀的构建工具Ant有如下的优点:

Ø         语法简单,便于学习,如果你使用过XMl,就会更加感觉到这一点;

Ø         易于使用,可以减少基于Make方法的大型软件项目中编写makefile的人数;

Ø         跨平台,以一种灵巧的方式管理Javaclasspath和文件的目录结构;

Ø         运行速度快,所有的Java都可以在AntJVM中启动;

Ø         Junit测试框架紧密集成以实现极限编程的单元测试;

Ø         使用Java语言可以很容易的对他进行扩展;

Ø         内置对J2EE的开发的支持,EJB的编译和打包等;

Ø         致力于解决Java项目的部署问题:FTP,Telnet,应用服务器,SQL命令等,这些都可以自动部署.

 

 

Ant的官方网站http://ant./

Ant的最新版本:Ant 1.6.5

本文所有的例子运行的环境:JDK1.4.2,Ant1.6.2,eclipse3.0

 

 

.介绍AntDATATYPE和特性

       Ant的核心任务就是target,一个Ant文件有多个target组成,而这些target之间,又有相互的依赖关系--depends,运行的时候默认运行project中指定的target.在构建一个典型的Java工程时,多数的步骤用于处理文件和路径(classpath),Ant提供的datatype可以很自然的处理这两个概念.文件集和路径以及其他的几种类型的datatype,构成了Ant的构建文件的基本结构.

 

 

1.路径(Path

       javac中我们经常使用的就是classpath,一个路径定义的例子如下:

                   <classpath>

                            <pathelement location =”lib/some.jar”/>

                   </classpath>

       location允许你指定单个的文件或者目录,也可以通过另一个路径莱扩展当前的路径,使用path来代替location:

                   <classpath>

                            <pathelement path =”build/classes;lib/some.jar”/>

                   </classpath>

       路径定义中元素间的分隔符可以使用分号,冒号,路径分隔符可以使用斜杠,反斜杠,不需要考虑操作系统的差异.

 

 

2.文件集(Fileset)

       所有的构建过程都会隐式的对一系列文件进行操作,Ant将文件集看成一种本地的datatype,下面看一个例子,这个例子是将文件从一个目录copy到另一个目录中:

                   <copy todir=”new_web”>

                            <fileset dir=”web”/>

                   </copy>

       在构建过程中我们通常需要包含或者排除一些文件,下面是一些典型的文件集示例:

                   <fileset>                                  

                            <include name="**/*Test.java"/>    

                   </fileset>    

            <fileset>

                            <exclude name="**/*.jsp"/>

                   </fileset>  

       默认情况下,includeexclude中的值是大小写敏感的,可以通过设置casesensitive=”false”,来取消它.

还有在许多情况下,IDE和代码管理系统会生成许多的临时文件,我们不得已要在每个文件集中去设置排除子句,为了避免这种情况,Ant针对这些特殊的模式的排除模式在默认情况下是激活的(例如:**/CVS,**/#*#),详细模式可以查找相关的文档!.

 

 

3.模式集(Patternset)

       在文件集中使用Ant的另一个核心datatype:模式集,来实现包含和排除功能.模式匹配功能如下:

l       *  指代从零到任意长的字符.

l       ?  指代单一字符.

l       ** 作为目录名,代表目录树上从当前节电往下的所有目录,可以是零到任意多个目录.

l       / \结尾的模式意味着结尾是**.

      

4.选择器(Selector)                              

       Ant1.5以上的版本包含了一个精密的新特性,选择器,他用来选择包含在文件集中的文件.介绍几种常用的内建选择器:

<filename>:基于模式匹配文件,工作方式类似与模式集的includeexclude元素

<size>:以小于,大于,等于该指定值为条件来选择文件.

<date>:以最后修改时间早于,迟于或等于指定值来选择文件.

<present>:选择存在于其他目录树的文件.

<contains>选择包含指定字符串的文件.

       这些选择器都可以被合并到选择器容器中以提供分组和逻辑表达,这些容器就是<and>,<or>,<not>,<none><majority>

       比较两个目录,并将只在一个目录下存在的文件复制到另一个目录下,我们来结合使用<not><present>

                   <copy todir="newfiles">

                            <fileset dir="web">

                                     <not>

                                               <present targetdir="currebtfiles"/>

                                     </not>

                            </fileset>

                   </copy>

       使用<contains>选择器,我们可以选择只包含特定字符串的文件:

                   <copy todir="newfiles">

                            <fileset dir="web">

                                     <contains text="System"/>

                            </fileset>

                   </copy>.

 

 

       这里简单提一下Ant的一个特性:Property,它与java.util.Property在概念上非常相似,它允许在构建文件中自定义特性,并且允许将环境变量作为特性. Property具有特殊的权限,他可以在<target>之外执行,具体的用法,在下面将结合例子说明.

 

 

       以上介绍了几种Ant的常用datatype,Ant还包括很多的datatype,例如过滤集(Filterset),过滤链(filterchain),过滤阅读器(FilterReader),Mapper映射器,ZipFileset等等,可以通过相关资料来了解!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多