【发布时间】:2015-03-25 02:12:18
【问题描述】:
我们想了解一些遗留的 job-dsl 脚本,但不知道“斜线运算符”在这种情况下是什么意思(因为它不能是除法):
def command = (shells.first() / command)
我们尝试在几本 Groovy 书籍中查找它,但只找到了一个简单的解决方案,即它意味着“除法”。
【问题讨论】:
标签: groovy jenkins jenkins-plugins jenkins-job-dsl
我们想了解一些遗留的 job-dsl 脚本,但不知道“斜线运算符”在这种情况下是什么意思(因为它不能是除法):
def command = (shells.first() / command)
我们尝试在几本 Groovy 书籍中查找它,但只找到了一个简单的解决方案,即它意味着“除法”。
【问题讨论】:
标签: groovy jenkins jenkins-plugins jenkins-job-dsl
这是一个 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
...
**/
【讨论】: