平时经常会用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所需实现的功能,应该会是十分方便。