zoukankan      html  css  js  c++  java
  • Ant 属性学习

    1:http://bbs.csdn.net/topics/320124396

    想问一下关于ant变成中taskdef的resource属性有什么作用,这个属性的设置是随意的,还是根据自己系统上安装的ant来的?
    例如下面一段代码:
    <taskdef resource="net/sf/antcontrib/antlib.properties">
    <classpath>
    <pathelement location="D:\ant\lib\ant-contrib-1.0b3.jar" />
    </classpath>
    </taskdef>

    终于知道了,net/sf/antcontrib/antlib.properties,是在ant-contrib-1.0b3.jar中的~~

    2   http://blog.163.com/yang_jianli/blog/static/161990006201272455531446/

    Ant 利用第三方的task  

    一、如何使用第三方任务
      Ant可以使用第三方任务,在使用第三方任务之前,需告知Ant,这就是<taskdef>任务的用意。
      Ant中声明第三方任务有一下几种方法:
      1、声明中指定任务类名,比如:
        <taskdef name="document"
          classname="xdoclet.doc.DocumentDocletTask"
          classpath="${xdoclet.jar}"
        />
       2、比较常见的做法是,定义个properties文件,在该文件中将任务的名称和类名相对应,在一个文件中可以定义多个任务。在构建文件(build.xml)中,只需要指定该文件和类所在的路径,就可以一次定义多个任务了。比如:
          task.properties文件中:
         document=xdoclet.doc.DocumentDocletTask
         xdoclet=xdoclet.DocletTask
         ....
          在构建文件中,
          <taskdef file="task.properties"
                   classpath="${xdoclet.jar}"
          />
       3、一般来说,如果第三方提供自己的任务,都会事先写好properties供他人使用。该properties文件一般存在jar包中,此时在构建文件中声明任务:
        
          <taskdef source="task.properties"
                   classpath="${xdoclet.jar}"
          />
    二、第三方任务ant-contrib
       要使用第三方任务ant-contrib,首先需在其网站获得ant-contrib.jar。
      ant-contrib主要有下面几个任务:
      1、C++编译和连接任务
      2、propertycopy--允许特性动态展开为解引用的特性。见学习笔记3--特性解引用
      3、osfamily--设置表明操作系统的特性,比如mac,windows,unix。
       <target name="testosfamily">
     <osfamily property="MyOs"/>
     <echo message="MyOs is ${MyOs}"/>
    </target>
       将返回:
       [echo] MyOs is windows
      4、逻辑任务if,switch,foreach,trycatch等。
         if逻辑结构,例子: 
        <target name="testif">
      <if><not><isset property="testif1.prop"/></not>
        <then><echo message="testif1 is not set"/>
              <if><isset property="testif2.prop"/>
                <then><echo message="testif2 is  set"/></then>
                <else><echo message="testif2 is not set"/></else>
              </if>
        </then>
        <elseif><isset property="testif2.prop"/>
                <then><echo message="testif1 is set"/>
                      <echo message="testif2 is  set"/>
                </then>
        </elseif>
        <else>
             <echo message="testif1 is  set"/>
             <echo message="testif2 is not set"/>
        </else>
      </if>
    </target>
     
       switch的逻辑结构,例子:
        <target name="testswitch">
      <switch value="${testswitch}">
        <case value="branch1">
         <echo message="enter branch1..."/>
        </case>
        <case value="branch2">
         <echo message="enter branch2..."/>
        </case>
        <default>
         <echo message="enter default branch..."/>
        </default>
      </switch>
    </target>
     
       使用显示循环foreach,例子:
        foreach有两个要循环的列表,一个用list指定,另一个可用fileset指定。两个选其一就可以了,也可以两个同时存在。target和param必须存在。
        <target name="testforeach">
      <foreach list="1,2,3" target="loop" param="var"
      />
    </target>
    <target name="loop">
      <echo message="var = ${var}"/>
    </target>
     <target name="testforeach">
      <foreach target="loop" param="var">
        <fileset dir="src"/>
       </foreach>
    </target>
    <target name="loop">
      <echo message="var = ${var}"/>
    </target>
     
       捕获任务异常,例子:
     <target name="testtrycatch">
      <trycatch property="exception.prop"
                reference="exception.ref">
           <try>
             <fail>TestException!</fail>
           </try>
           <catch>
             <echo message="exception is caught here"/>
           </catch>
           <finally>
              <echo message="finally"/>
           </finally>
      </trycatch>
      <property name="exref" refid="exception.ref"/>
      <echo message="exception.prop=${exception.prop}, exception.ref=${exref}"/>
    </target>
     
       输出结果为:
       [trycatch] Caught exception: TestException!
         [echo] exception is caught here
         [echo] finally
         [echo] exception.prop=TestException!, exception.ref=D:\personal\java\ant\bu
    ild.xml:267: TestException!

    3

    I'm falling off the sky all alone.The courage inside is gonna break the fall. Nothing can dim my light within. I am That I am 程序 = 数据结构 + 算法
  • 相关阅读:
    navcat15 安装+激活
    页面调用百度地图但是使用了https证书之后不显示
    net core webapi 数据库连接
    asp.net core webAPI跨域问题
    本机端口(出入站)配置
    Vue页面跳转路由
    net core --- Swagger搭建(net core 3.1 版本)
    sqlserver数据库中生成随机数
    随机生成登录验证码(4位)
    定时器
  • 原文地址:https://www.cnblogs.com/IamThat/p/2949658.html
Copyright © 2011-2022 走看看