Groovy 斜线运算符 (Jenkins job-dsl)

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

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

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

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

最佳答案

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

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
...
**/

关于Groovy 斜线运算符 (Jenkins job-dsl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28153947/

相关文章:

java - 无法在 spock 中的空对象上调用方法 leftshift()

Groovy 常量字符串作为注释值

使用队列和链表的 Groovy 示例应用程序

git - Jenkinsfile 检查构建是否由推送或 merge 请求触发

jenkins - Jenkins xUnit 插件的控制参数

jenkins - 是否有可能让 Jenkins 更快地从附加云创建工作人员?

grails - 编写单元测试以保存模型

jenkins - 通过 URL 参数为 Jenkins 作业构建选择分支

ant - 如何覆盖 Jenkins 中的 http_proxy 环境变量?

ios - 我可以在没有配置文件的情况下使用 jenkins 构建 iOS 项目吗?