[Groovy]Groovy with Ant Task

平时经常会用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