【问题标题】:Groovy slash operator (Jenkins job-dsl)Groovy 斜线运算符 (Jenkins job-dsl)
【发布时间】:2015-03-25 02:12:18
【问题描述】:

我们想了解一些遗留的 job-dsl 脚本,但不知道“斜线运算符”在这种情况下是什么意思(因为它不能是除法):

def command = (shells.first() / command)

我们尝试在几本 Groovy 书籍中查找它,但只找到了一个简单的解决方案,即它意味着“除法”。

【问题讨论】:

    标签: groovy jenkins jenkins-plugins jenkins-job-dsl


    【解决方案1】:

    这是一个 XML Node 操作,返回一个 XML 节点的子节点,如果不存在则创建它。可能是您的第一个 shells 节点下的 command 节点。

    Groovy 允许operator overloading,因此它相同的“除法”运算符,只是重新定义了一些。这在其他允许运算符重载的语言中很常见(但也有争议),但确实允许更丰富的 DSL。

    快速浏览了JobDSL source 的(旧副本),似乎他们正在使用NodeEnhancement 类来做这件事,尤其是这个JavaDoc:

    /**
    Add div and leftShift operators to Node.
    div - Will return the first child that matches name, and if it doesn't exists, it creates
    ...
    **/
    

    【讨论】:

    • 没错。还可以查看 Job DSL wiki,它解释了用于 XML 操作的重载运算符:github.com/jenkinsci/job-dsl-plugin/wiki/…
    • @daspilker - 哦,嗨 :)。再次感谢您的出色项目。
    • 这需要一些努力才能找到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 2018-05-22
    • 2016-01-04
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多