Jenkins中groovy.xml.StreamingMarkupBuilder报错:找不到settings属性
问题解决:StreamingMarkupBuilder 报“No such property settings”错误
错误原因
- 直接在闭包内写
settings{}时,Groovy会尝试从StreamingMarkupBuilder的上下文查找名为settings的属性或方法,找不到就抛出该错误。 - 代码里的
mkp.yeild是拼写错误,正确写法是mkp.yield。
修正后的代码
def xmlFile = new StreamingMarkupBuilder().bind { // 使用mkp.tag显式创建settings标签 mkp.tag('settings') { mkp.yield settingsObj.servers.children() } }
或者另一种写法,利用Groovy的方法调用语法(适用于无命名冲突的场景):
def xmlFile = new StreamingMarkupBuilder().bind { 'settings'() { // 用字符串形式调用方法生成标签 mkp.yield settingsObj.servers.children() } }
补充说明
mkp是StreamingMarkupBuilder闭包内的内置对象,用于控制XML生成的各类操作,比如创建标签、插入内容等。- 要确保
settingsObj.servers.children()返回的是可被yield处理的XML节点集合,避免后续出现内容无法正确插入的问题。
内容的提问来源于stack exchange,提问作者prajwal
相关产品推荐
相关产品推荐

