让我们有一个对象:
def scm = [
$class: 'GitSCM',
branches: branches,
userRemoteConfigs:
[ [ credentialsId: credentialsId, url: repoUrl, name: remote, refspec: refspecs ] ],
extensions: [
[$class: 'RelativeTargetDirectory', relativeTargetDir: (args.path ? args.path : args.repository.name) ],
[$class: 'CloneOption', honorRefspec: true, noTags: true, reference: '', shallow: false, timeout: 30],
[$class: 'ScmName', name: args.repository.name]
]
]
我想检查 timeout
从…起 CloneOption
.
我尝试了以下方法,但没有成功:
script.println(scm.extensions[[CloneOption.timeout]])
...
1条答案
按热度按时间gxwragnw1#
一种方法是:
因为
scm.extensions
是一个List
,我们使用find
要从中取出一个与闭包内的条件匹配的元素。。。在闭包中,我们询问哪个元素具有属性$class
谁的价值是CloneOption
.find
返回与条件匹配的一个元素,或null
,以便访问timeout
我们使用空安全运算符:?.timeout
.您可以更进一步,向Map(对象的类型)添加一个帮助器方法,使您可以更轻松地从它或它的“扩展”访问属性:
现在,你可以使用
getProp
为实现这一目标:将打印: