`
weigang.gao
  • 浏览: 482445 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

ant中的condition与available

 
阅读更多

参考:http://www.blogjava.net/fingki/archive/2008/05/21/201919.html

1.<condition>任务在测试成功后才对特征进行设置,否则保留特征不设置。

大部分Ant测试可以根据<condition>任务进行分组,如过嵌套的条件测试为true,它将对一个已经命名的特征进行设置。使用逻辑运算符<and>,<or>, <xor>和<not>可以构成一个复杂的测试条件。例如

<?xml version="1.0"?>
<project name="testCondition" >
    <target name="test">
          <!--判断本机操作系统是不是windows,unix中之一,如果是,特征值设置为success-->
          <condition property="os" value="success" else="fail"><!--已经命名特征os-->
              <or><!--嵌套条件-->
		         <os family="unix" />
		         <os family="windows" />
		      </or>
          </condition>
		 <echo>sconditon=${os}</echo>
    </target>
</project>

 

a)条件是否为true,决定了特征是否存在。Ant规定条件为true,特征会赋值为true。条件不成立,特征不存在。

<project name="testCondition">
    <target name="test">
	    <!--如果条件为true,则设置特征值为true。否则特征不存在(而不是说不给scondtion赋值)-->
        <condition property="scondition">
            <istrue value="true"/><!--条件-->                  
        </condition>
        <antcall target="isTrue"></antcall>
    </target>
    <target name="isTrue" if="scondition"><!--只要名为scondition的特征存在,那就执行isTrue-->
        <echo>is ture</echo>
    </target>
</project>

 

b)由于特征scondtion根本不存在,所以不会执行目标test。而不是根据特征的值来决定目标是不是被执行。

<?xml version="1.0"?>
<project name="testCondition">
    <target name="test"  if="scondition">
	    <echo message="scondition1=${scondition}" />
        <echo>is ture</echo>
    </target>
</project>

但是如果我们在命令行中设置了特征scondition(ant -Dscondition=false test),那么目标test就会被ant执行

 

2.测试127.0.0.1这台机器上的8080端口是否被应用程序占用。如果没被占用,输出错误提示信息。

<?xml version="1.0"?>
<project name="testCondition" >
   <target name="test">
		<property name="server.port" value="8080" />
		<fail message="no server at ${server.port}" >
			 <condition>
			     <not>
				    <socket port="${server.port}" server="127.0.0.1" />
				 </not>
			 </condition>
		</fail>
   </target>
</project>
 

 

3.按照ant手册,任务 <tstamp/>的作用就是Sets the DSTAMP, TSTAMP, and TODAY properties in the current project, based on the current date and time.然后,在build file的其他地方使用DSTAMP,TSTAMP,TODAY三个属性.当然,如果在build file的其他地方不使用DSTAMP,TSTAMP,TODAY这三个属性.那么<tstamp/>其实就相当于没有用了 。样例:

<project name="portal" basedir=".">
    <property name="lib.dir" value="lib" />
    <tstamp/>
   <target name="init">
        <echo message="${TODAY}" />
        <echo message="${DSTAMP}" />
        <echo message="${TSTAMP}" />
 </target>
</project>

将以上代码保存为:build.xml文件后执行,可以得到一下结果

也就是说:在你的Ant脚本中定义了<tstamp/>对象后,它便为我们定义了三个属性变量:DSTAMP,TSTAMP,TODAY

<tstamp/>任务允许任何数量的嵌套<format>元素,它们以给定的格式规范来定义特征。例如:你也可以像这样:

<?xml version="1.0" ?>
<project name="portal" >  
 <target name="init">
    <tstamp>
        <format property="TODAY" pattern="yyyy-MM-dd" locale="cn" />
        <format property="NOW" pattern="yyyy-MM-dd HH:mm:ss" locale="cn" />
    </tstamp>
	<echo message="now=${NOW}, TODAY=${TODAY}"/>
 </target>
</project>
自己设定日期和时间的格式,以便你在Ant脚本文件中随时使用这些时间属性

 

 

 

 

  • 大小: 3.3 KB
分享到:
评论

相关推荐

    ant配置ant配置

    在Java开发中,Ant被广泛用于构建大型项目,确保代码的一致性和可重复性。本文将深入探讨Ant配置的相关知识点,以及如何利用Ant实现高效开发。 首先,我们来理解Ant的基本结构。一个Ant项目通常由一个名为`build....

    项目Ant配置实例一次下载各处使用

    4. **条件(Condition)**:Ant提供了条件语句,如`&lt;if&gt;`和`&lt;available&gt;`,可以根据不同环境的特性执行相应的任务。 5. **文件集(Fileset)**:文件集用于指定一组文件,常用于复制或编译操作。 6. **依赖关系...

    ant教程ant教程ant教程ant教程

    8. **条件(Condition)**:Ant提供了多种条件判断,如`available`检查文件或目录是否存在,`equals`比较两个字符串是否相等,这些条件可以用于控制构建流程的分支。 9. **宏定义(Macrodef)**:宏定义允许创建可...

    ant文档集合(自己学习ant时的资料)

    - Ant与Eclipse/IntelliJ IDEA集成:在IDE中直接运行Ant脚本,提高开发效率。 这个压缩包中的文档涵盖了Ant的基础知识、教程、参考和最佳实践,对于想要深入学习Ant的人来说是一份全面的学习资料。通过阅读这些...

    ant-1.7下载附学习资料

    此外,还有条件语句(condition),例如`available`检查文件或目录是否存在,`if`和`unless`用于根据条件决定是否执行某个任务。 4. **依赖关系**:Ant可以处理任务之间的依赖关系,确保任务按正确的顺序执行。如果...

    ANT批量打包工具及教程

    - **if语句不支持condition**:确保已引入了ant-contrib库,并正确使用了条件标签。条件通常基于属性值进行判断,例如`&lt;available file="path/to/file" property="file.exists" /&gt;`。 - **找不到keystore**:检查...

    ant工具使用

    2. 条件(Condition):Ant提供了多种条件判断,如isset、available等,可以根据条件执行不同的任务。 六、Ant与版本控制系统集成 Ant可以与SVN、Git等版本控制系统集成,实现代码的版本管理操作,如checkout、...

    Ant自动构建总结

    标题中的“Ant自动构建总结”指的是Apache Ant,一个Java库和命令行工具,其目标是驱动构建过程。Ant使用XML来描述项目结构和构建过程,使得构建任务可以在不同的环境中重复执行,无需关心具体的操作系统或开发工具...

    ant入门资料.快速上手

    - 在系统环境变量中添加`ANT_HOME`,值为Ant的安装目录。 - 将`%ANT_HOME%\bin`添加到系统的`Path`环境变量中。 **2.2 测试安装** 打开命令行窗口,输入`ant -version`,如果正确安装了Ant,会显示Ant的版本号。...

    ant判断文件是否存在

    ant执行 target 前先判断文件是否存在,只有文件存在才执行。

    Ant学习资料

    7. **条件语句(Condition)**:Ant提供了一系列条件任务,如`available`检查文件或目录是否存在,`equals`比较两个字符串是否相等,`isset`检查属性是否已设置。这些条件可以用于控制构建流程的分支。 8. **脚本...

    ant入门加高级查询文档

    - **Ant贡献的任务**:许多第三方库提供了额外的任务,如Maven Ant Tasks用于Maven与Ant的集成。 - **Ant的Eclipse插件**:提供图形化界面,方便编辑和运行Ant构建。 9. **使用场景** - 自动构建Java项目 - ...

    ant使用手册

    - **条件(Condition)**:Ant提供了一些条件检查,如`available`(检查文件或目录是否存在)、`equals`(比较两个值)等。 - **选择器(Selector)**:用于在文件或目录集合中选择特定的元素,如`filename`(按...

    CE中文版-启点CE过NP中文.exe

    Thanks go out to SER[G]ANT for updating the russion translation files already June 23 2018:Cheat Engine 6.8.1 Released: Apparently 6.8 contained a couple of annoying bugs, so here's an update that ...

Global site tag (gtag.js) - Google Analytics