2015-01-26 7 views
4

우리는 기존 직업 DSL 스크립트의 몇 가지를 이해하고 싶지만 "슬래시 연산자는"이 상황에서 (그것이 캔트로 구분)을 의미 모르겠어요 :그루비 슬래시 연산자 (젠킨스 작업-DSL)

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

우리는 몇 가지 그루비 책에서 찾아 보려고했지만 '구분'이라는 사소한 해결책을 발견했습니다.

답변

5

XML 노드의 하위 노드를 반환하거나 존재하지 않는 경우 노드를 생성하려면 XML Node 작업입니다. 노드 shells의 첫 번째 노드 아래에 command 노드가 있습니다.

그루비는 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 
... 
**/ 
+1

합니다. 또한 XML 조작을 위해 오버로드 된 연산자를 설명하는 Job DSL 위키를 살펴보십시오. https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block#transforming-xml – daspilker

+0

@daspilker - 오 , 안녕 :). 훌륭한 프로젝트에 다시 한번 감사드립니다. – declension

+0

추적하는 데 약간의 노력이 필요했습니다. – sloven