`

Ant中的Datatype

 
阅读更多
1.
Datatype一般存储一些信息的集合,比如待编译的文件列表、待删除的目录集等,扮演了任务参数的角色,它们可以在一个任务内部声明,也可以在任务外部定义,并为它起个名字,然后再把这个名字传递给任务,这样就可以跨多个任务共享一个Datatype。

文件集(fileset)合路径(path),是比较常用的两种Datatype

文件集可以列出哪些文件需要编译、打包、复制、删除等。

<fileset id="source.fileset" dir="src" includes"**/*.java" />  

引用方式
<copy todir="backup">
      <fileset refid="source.fileset"/>
</copy>

2.ant特征
<property name="build.jar" value="build"/>
这个就是ant特征
${build.jar},如果定义,在构建时将被替换为特征的值,否则,保存原样。
注意:ant的特征值,是不能修改的,一旦第一次复制,后面就不可以修改它的值。

对于一些简单的属性值,可以用value设置,对于文件名和路径,用location属性设置更适合。

location属性可以把现对路径转换成绝对路径,把路径分隔符转换成目标平台相关的形式。

还可以加载外部的properties文件
<property file="build.properties"/>
加载属性文件时,都是以简单的value设置的,如果要用location再设置,可以这样:
<property name="ss" location="${key值}"/>
需要注意的是:配置文件中如果需要\,应该使用2个\\,这个应该记住。

3.路径path

它可以定义一个文件或目录
<path>
  <pathelement location="lib/junit.jar"/>
</path>
或者用path定义2部分,可通过:或者;分隔:
<path>
  <pathelement path="build/classes;lib/junit.jar"/>
</path>

如果path只包含一个元素,上面也可以简写成:
<path path="build/classes;lib/junit.jar"/>
<path location="lib/junit.jar"/>
path还可以包含一个文件集
<path>
   <fileset dir="lib">
      <include name="*.jar"/>
   </fileset>
</path>

目录即可以用/分隔,也可以用\分隔,构建文件不必关系它在哪个操作系统上运行。


路径的引用
<path location="lib/junit.jar" id="junit.path"/>
<path refid="junit.path"/>
或者
<path id="">
   <path refid="">
</path>

4.把2个目录的文件编译到一个目录下
  <javac destdir="dest">

     <src path="src1"/>
     <src path="src2"/>
  </javac>


5.文件集是以一个根目录为文件的集合,包含该根目录下,已经所有子目录下的文件
<copy todir="dest">
   <fileset dir="web"/>
</copy>
默认会把web下面所有的文件都拷贝过去。

模式集的应用,它用于限制要操作文件集中的哪一类文件,例如:
<copy todir="bin">
     <fileset dir="form" includes="**/*.gif"/>
</copy>
拷贝当前目录,及其子目录下的所有gif文件,**,这个表述匹配0个或多个目录。上面的例子也可以这样:
<fileset dir="form">
   <include name="**/*.gif"/>
</fileset>

javac是众多隐式文件集中的一个,它本身包含了很多文件集的属性
  <javac srcdir="src" destdir="dest">
       <classpath refid="compile.classpath"/>
       <include name="org/com/**/*.java"/>
       <exclude name="org/com/*.java"/>
  </javac>
classpath内嵌属性用于指定编译文件时依赖的类和文件
6.检查文件的可用性
<available property="cxm" classname="com.zte.Test"/>
如果找到Test类,cxm会被设置为true,否则保持未定义状态
<available property="cxm" file="./form/heartbseat.jsp" type="file"/>
测试文件是否存在,如果存在设置为true,否则保持为定义状态
<available property="cxm" file="./form" type="dir"/>
这是测试目录是否存在
<available property="cxm" resource="log4j.properties" />
这是测试资源文件是否存在

7.用condition测试条件
<condition property="os" value="windows" else="other">
    <or>
    <os family="win9x"/>
    <os family="winnt"/>
    </or>
</condition>


<target name="warzip">
           <echo>${os}</echo>
</target>
如果操作系统是win9x或者是xinnt,就把value值赋值给os,否则把other赋值给os。

9
fail,如果条件为真,则停止构建,并打印错误消息。
<fail message="is sss">
   <condition>
        <not>
    <socket port="8547" server="127.0.0.1"/>
</not>
   </condition>
</fail>
<fail>标签放到target外面也可以执行。如果在target外面,则不管它在哪个地方,在执行构建时,首先执行它。
not标签是对条件取反,socket判断指定机子上的指定端口是否开发,如果没有开放则返回false,否则返回true.

10.<tstamp>创建时间戳
执行默认的时间戳
<tstamp/>
它既可以在target外执行,也可以在target内执行,执行后会自动设置三个属性DSTAMP(yyyymmdd)、TSTAMP(hhmmss)、TODAY(月份,日、年)
也可以指定格式:
<tstamp>
  <format property="cxm" pattern="yyyy-MM-dd','HH:mm:ss"/>
</tstamp>
在后面引用cxm这个属性即可。
分享到:
评论

相关推荐

    ant.jar下载

    org.apache.tools.ant.types.DataType org.apache.tools.ant.types.FileList org.apache.tools.ant.types.LogLevel org.apache.tools.ant.types.Resource org.apache.tools.ant.util.DateUtils org.apache....

    Ant权威指南(PDF电子书)

    第四章主要讲述Ant的数据类型,包括已定义的DataType、XML属性约定等,并详细介绍了各种数据类型的使用方法和应用。第五章讲述了用户如何编写自定义任务,从任务模型、任务生命周期,到通过实际的jar任务示例来分析...

    Ant权威指南

    所以,书中提到的一些问题,比如自定义 DataType 的缺陷,可能已经完善地得到了解决。 本书不但从 Ant 技术上进行了详细、本质的讲解,同时结合作者经历过的各种项目经验,对项目结构控制也进行了总结性、归纳性的...

    ANT入门与提高.doc

    除了`project`、`target`和`task`,ANT还引入了`DataType`的概念,用于管理构建过程中涉及的各种数据结构。`DataType`主要包括: - `property`:用于存储键值对,便于在整个buildfile中引用和传递变量。 - `fileset...

    Apache Ant API----下载

    6. **插件机制**:通过扩展Ant的Task或DataType,开发者可以自定义构建逻辑。 四、下载Apache Ant 要下载Apache Ant,你可以访问Apache官方网站的Ant项目页面(http://ant.apache.org/),在那里,你可以找到最新...

    antPlusCordovaPlugin:用于 CordovaPhonegap 混合应用程序的 Ant+ 插件

    通过这个插件,开发者可以轻松地将 ANT+ 设备集成到他们的混合应用中,从而实现数据传输、设备控制等功能。例如,你可以创建一个应用来实时监控用户的运动表现,获取心率、速度、距离等健康指标。 ...

    演示Android操作数据库例子

    在"AntTest"这个压缩包中,可能包含了实现上述功能的代码示例,包括数据库帮助类(DBHelper)、数据操作类(可能包含增删查改的方法)以及用于展示数据的Activity或Fragment。通过查看和学习这些代码,你可以更深入...

    基于Java的JAXP数据验证引擎 Serene.zip

    NOTICE.relaxng.datatype.txt和NOTICE.xercesImpl.txt可能包含了关于Relax NG数据类型和Xerces实现的注意事项,Relax NG是一种灵活的XML模式语言。这表明Serene可能支持Relax NG作为其数据验证的一部分。 build.xml...

    基于Java的实例源码-JAXP数据验证引擎 Serene.zip

    5. **NOTICE.relaxng.datatype.txt、NOTICE.xercesImpl.txt**: 可能包含关于RELAX NG数据类型库和XercesImpl的版权通知和使用条件。 6. **build.xml**: Ant或Maven等构建工具的配置文件,用于自动化构建、测试和打包...

    基于Java的实例开发源码-JAXP数据验证引擎 Serene.zip

    - `NOTICE.relaxng.datatype.txt`, `NOTICE.xercesImpl.txt`: 提供了关于依赖库的版权和许可信息。 - `build.xml`: Apache Ant构建脚本,用于编译、测试和打包项目。 - `testSuite`: 测试套件,包含验证Serene...

    基于Java的源码-JAXP数据验证引擎 Serene.zip

    2. `NOTICE.relaxng.datatype.txt`, `NOTICE.xercesImpl.txt`: 这些文件通常包含对第三方库或组件的引用和通知,说明项目中使用了哪些外部资源,以及相关的版权信息。 3. `build.xml`: 这是一个Ant构建文件,用于...

    Java 实现 ADO.NET DataTable

    - `addColumn(String columnName, Class dataType)`: 添加新的列。 - `addRow(Map, Object&gt; data)`: 添加新的行数据,其中数据应按照已定义的列顺序对应。 - `getRows()`: 获取所有行数据。 - `getColumn(String...

    java源码:JAXP数据验证引擎 Serene.zip

    1. LICENSE.DOM-software.html、LICENSE-SAX.html、LICENSE、LICENSE.jaxp.txt、LICENSE.xercesImpl.txt、NOTICE.relaxng.datatype.txt、NOTICE.xercesImpl.txt: 这些文件包含了项目的许可信息,分别对应不同的库或...

    基于java的JAXP数据验证引擎 Serene.zip

    "build.xml"是一个Ant构建文件,Ant是Java项目常用的构建工具。这个文件定义了构建过程,包括编译源代码、运行测试、打包和部署等步骤。通过阅读和理解这个文件,开发者可以了解如何构建和管理Serene项目。 "test...

    JAXP数据验证引擎 Serene

    3. **NOTICE.relaxng.datatype.txt, NOTICE.xercesImpl.txt**:这些文件通常列出项目中使用的第三方组件及其版权信息。 4. **readme.html**:这个文件通常包含项目的基本介绍、安装指南、使用说明等重要信息。 5. ...

    SpringBoot如何实现一个实时更新的进度条的示例代码

    dataType: 'json', success: function(result) { progress = result.value; if (progress != "error"){ var date = progress.substring(0,6); // 这里更新进度条的进度和数据 $(".progress-bar").width...

    Vue 报错TypeError: this.$set is not a function 的解决方法

    报错场景:将APi中得到的response数据,用Vue$set()使数据动态响应 报错代码: methods: { textTranslate: function (text, to) { $.ajax({ url: 'http://openapi.youdao.com/api', type: 'post', dataType: ...

    JAXP数据验证引擎 Serene源码示例

    - `NOTICE.relaxng.datatype.txt`, `NOTICE.xercesImpl.txt`: 提供关于项目所依赖的Relax NG数据类型和Xerces-Impl库的通知信息。 - `build.xml`: Apache Ant构建脚本,用于编译和打包源代码。 - `src`: 源代码...

Global site tag (gtag.js) - Google Analytics