平时经常会用Ant来写一写脚本,但最近跨入到Groovy的时代,试着做一些改变。Groovy里集成了AntBuilder能非常方便的调用到Ant的对象模型。

现考察如下

1. Groovy里定义的属性如何能在Ant的Task里调用?

1 def testMsg = "hello world"
2 def ant = new AntBuilder()
3 ant.echo(message:"${testMsg}")

2. 如何在Groovy里访问Ant里定义的属性?

1 def ant = new AntBuilder()
2 ant.property(name:"p1",value:"v1")
3 ant.echo(message:'${p1}') // output: v1, 注意只是单引号,双引号在Groovy里有点特别
4 println ant.project.properties.p1 // output: v1

请注意Ant的Property是immutable(不可变的),所以在Groovy里修改一定定义过的Ant属性是不起作用的

1 def ant = new AntBuilder()
2 ant.property(name:"p1",value:"v1")
3 ant.echo(message:'${p1}') // output: v1, 注意只是单引号,双引号在Groovy里有点特别
4 ant.project.properties.p1 = "v2" // output: v1
5 ant.echo(message:'${p1}') // still output: v1

3. 用Groovy创建一个Ant的Property

1 def ant = new AntBuilder()
2 ant.project.setProperty('p1','v1')
3 ant.echo(message:'${p1}') // outoput: v1

以后可以考虑用Groovy来完成类似Ant所需实现的功能,应该会是十分方便。

转载于:https://www.cnblogs.com/buhaiqing/p/4543190.html

[Groovy]Groovy with Ant Task相关推荐

  1. Groovy~Groovy介绍

    一.什么是Groovy Groovy的官方网站 Groovy是一种基于Java平台的面向对象语言 二.Groovy的特点 同时支持静态和动态类型 支持运算符重载 本地语法列表和关联数组 对正则表达式的 ...

  2. 【错误记录】Groovy工程中的文件查找策略 ( main 函数中需要使用 src/main/groovy/Script.groovy | Groovy 脚本直接使用代码相对路径 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Java 类中 , 调用 Groovy 脚本 , 出现如下错误 ; java.io.FileNotFoundException: Y:\002_ ...

  3. [Groovy] Groovy API

    http://www.soapui.org/about-soapui/soapui-faq.html#1-SoapUI--General-Questions 3.1.1. What is Groovy ...

  4. php groovy,Groovy

    假设我有以下结构: Map> nestedMap = [ "x": ["a": 2, "b": 3, "c": 4 ...

  5. Groovy~Groovy的方法

    一.Groovy方法介绍 Groovy中的方法是使用返回类型或使用def关键字定义的. 方法可以接收任意数量的参数 定义参数时,不必显式定义类型 可以添加修饰符,如public.private和pro ...

  6. Groovy~Groovy变量

    定义变量时,可以使用groovy风格的def声明,不指定变量类型 定义变量时,可以使用java风格,执行变量类型 class FirstTest{static void main(String[] a ...

  7. org.apache.tools.ant.Task在哪个jar包

    在apache的Commons launcher -----org.apache.tools.zip的ant.jar中

  8. Groovy~Groovy的List(列表)操作

    一.列表方法 add():将新值附加到此列表的末尾 contains():如果此列表包含指定的值,则返回true get():返回此列表中指定位置的元素 isEmpty():如果此列表不包含元素,则返 ...

  9. Groovy~Groovy的Map操作

    Map方法 containsKey():此映射是否包含此键 get():查找此Map中的键并返回相应的值,如果此映射中没有键的条目,则返回null keySet():获取此映射中的一组键 put(): ...

  10. Gradle用户指南之初学者教程(三)

    写在前面的话: 博主最近在学习Android Studio相关的东西.Gradle相对于我这个从Eclipse转过来的Android开发者,也算是一个全新的事物.但它却承担着Android构建系统中相 ...

最新文章

  1. c语言n位水仙花数简书,Kotlin中函数式编程API(8)求阶乘和计算水仙花数
  2. erwin连接oracle数据库,erwin连接oracle9i数据库
  3. JZOJ 5926. 【NOIP2018模拟10.25】naive 的图
  4. python基础系列教程——python所有包库的下载
  5. android 底部去除list渐变,layer-list渐变色的处理
  6. Lc101对称二叉树
  7. c# 类似于QQ表情弹出框功能的二种实现方法
  8. SSH学习之二 OpenSSH配置文件解析
  9. java8新特性 lambda Stream map(函数式编程)
  10. python csv写文件,用Excel打开中文乱码解决
  11. python 实现Web版股票行情界面
  12. 卧槽,这也真的太上头了吧
  13. VMOS+小黄鸟无root抓包(解决抓包无网络问题)(附工具)
  14. 将切割后的小图片还原为大图片
  15. RPC框架原理与实现
  16. HBase数据库总结(一)
  17. 有赞商城如何对接ERP、CRM系统?
  18. viewpager左右循环滑动,自动滑动广告栏
  19. Python图片转换为PDF
  20. OAuth 统一登录 记录

热门文章

  1. php excel库,phpexcel类库下载
  2. Servlet容器和IOC容器
  3. 中国区块链专利申请数破万:阿里巴巴居首位 网心科技晋身前十
  4. 使用win10远程控制ubuntu14.04
  5. 代码静态检测——QAC
  6. matlab数学实验报告面积,MATLAB插值实验报告数学实验
  7. SRE运维工程师笔记-计算机基础
  8. 【原创】导读”淘宝褚霸关于 gen_tcp 的分享“
  9. springboot接收前端的数组_SpringBoot如何接收数组参数的方法
  10. 什么是登录Token