【问题标题】:In Groovy, how do I get the list of parameter names for a given job?在 Groovy 中,如何获取给定作业的参数名称列表?
【发布时间】:2015-04-29 21:31:10
【问题描述】:

在 Groovy 中,我得到了一份 Hudson 的工作:

def job = hudson.model.Hudson.instance.getItem("Rsync library to docs-stage") 

现在我想要一份该作业的参数名称列表。听起来很简单,但谷歌搜索并没有让我到达那里。有人可以启发我吗?

谢谢。

【问题讨论】:

    标签: groovy hudson


    【解决方案1】:

    我不确定您所说的“参数名称”是什么意思。作为最后的手段,您可以将作业配置作为 XML 字符串:

    print job.configFile.asString()
    

    由于这是 XML,您可以根据需要对其进行解析。根据您要查找的参数名称,您可能还可以直接在 Java 中获取它们。您可以发布您正在寻找的 XML 吗?这将有助于评论更好的方法。

    这个海报需要的参数,用Groovy很容易搞定:

    def params = job.getProperty('hudson.model.ParametersDefinitionProperty')
      .parameterDefinitions
    
    params.each { p -> println "$p.name"}
    

    【讨论】:

    • 这是我定义的参数。但是,我将不得不学习更多 Groovy 才能达到可以解析该配置的地步。
    • FOOcdBARQ18753_01
    • 要解析 XML,请查看 Groovy XmlSlurper 类。你现在不需要它。您要查找的参数是基本参数,它们在 Groovy 中很容易获得。我已经编辑了我的答案以及如何做到这一点。
    • 非常感谢。这是超级有用的!我相信我已将这个问题勾选为已回答,但如果我在该领域还有什么可以做的,请告诉我。
    • 我需要形成一个参数列表。使用您的答案,并胡闹了一下,我想出了:def param_names = params.collect{ it.name}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多