2011-01-14 64 views
0
“setOmitNullAttributes”功能

示例代码:Groovy的AntBuilder,省略条件属性,就像MarkupBulder

def ant = new AntBuilder() 
ant.'antlib:org.jacoco.ant:agent'(
       enabled: enabled, 
       property: 'agentvmparam') 

当那“已启用”参数为空,我想它是在蚂蚁任务转换不存在,而不仅仅是“空洞”。 “空”被评估为“真”http://ant.apache.org/manual/develop.html#set-magic这不是我想要的。

XML构建例如:

def xml = new MarkupBuilder() 
xml.omitNullAttributes = true 
xml.root(
     requiredAttribute:'required', 
     optionalAttribute: optionalAttribute 
     ) { } 

那 “omitNullAttributes” 将确保,如果Groovy中参数的计算结果为null “optionalAttribute” XML元素参数甚至没有出现。

,所以我得到

<root requiredAttribute='required' /> 

,而不是

<root requiredAttribute='required' optionalAttribute='' /> 

回答

0

位可能的解决方法,但工作的呢?

def ant = new AntBuilder() 
ant.'antlib:org.jacoco.ant:agent'([ enabled:enabled, 
            property:'agentvmparam' ].findAll { it.value != null }) 

即:使用findAll删除帕拉姆地图

+0

优秀的空条目!运行良好,持续很长时间。谢谢! – 2011-01-14 14:44:30