Groovy AntBuilder,省略条件属性,如;setOmitNullAttributes“;Markupulder上的功能
示例代码:Groovy AntBuilder,省略条件属性,如;setOmitNullAttributes“;Markupulder上的功能,ant,attributes,groovy,builder,Ant,Attributes,Groovy,Builder,示例代码: def ant = new AntBuilder() ant.'antlib:org.jacoco.ant:agent'( enabled: enabled, property: 'agentvmparam') 当“enabled”参数为null时,我希望它不出现在ant任务转换中,而不仅仅是“empty”。“empty”被计算为“true”,这不是我想要的 xml生成器示例: def xml = new Markup
def ant = new AntBuilder()
ant.'antlib:org.jacoco.ant:agent'(
enabled: enabled,
property: 'agentvmparam')
当“enabled”参数为null时,我希望它不出现在ant任务转换中,而不仅仅是“empty”。“empty”被计算为“true”,这不是我想要的
xml生成器示例:
def xml = new MarkupBuilder()
xml.omitNullAttributes = true
xml.root(
requiredAttribute:'required',
optionalAttribute: optionalAttribute
) { }
如果Groovy参数的计算结果为null,“ompitNullAttributes”将确保“optionalAttribute”xml元素参数甚至不存在
所以我明白了
<root requiredAttribute='required' />
而不是
<root requiredAttribute='required' optionalAttribute='' />
这是一种可能的解决方法,但这是否有效
def ant = new AntBuilder()
ant.'antlib:org.jacoco.ant:agent'( [ enabled:enabled,
property:'agentvmparam' ].findAll { it.value != null } )
ie:使用
findAll
删除参数映射的空条目太好了!效果很好,持续时间很长。谢谢对我的描述有一点澄清:在Ant中,“empty”被计算为“false”,但我需要它根本不被计算,这样默认值就可以生效