2014-07-20 3 views
2

저는 Groovy와 Gradle을 배우기 시작했습니다. 안녕하세요 세계의 그라데이션 스크립트로 놀고 있습니다. 다음 두 스크립트에서 첫 번째 스크립트는 성공하고 두 번째 스크립트는 성공하지 못합니다. 왜 그 이유를 설명 할 수 있습니까? 제쳐두고, 나는 이것들이 '표준'Gradle 구문이 아니라는 것을 알지만 API와 일치합니다. '인트로'작업의 종속성을 확인할 수 없습니다 :이 Gradle 구문에 어떤 문제가 있습니까?

이 실패
task 'hello' << { 
    println 'Hello world!' 
} 

task 'intro', dependsOn: hello << { 
    println "I'm Gradle" 
} 

(차이 '안녕하세요'주위에 따옴표입니다) :

이 작동

task 'hello' << { 
    println 'Hello world!' 
} 

task 'intro', dependsOn: 'hello' << { 
    println "I'm Gradle" 
} 

을하지만,이 작품 :

task 'hello' << { 
    println 'Hello world!' 
} 

task('intro', dependsOn: 'hello') << { 
    println "I'm Gradle" 
} 

답변

3

첫 번째 코드 단편과 두 번째 코드 단편이 모두 잘못되었습니다. 첫 번째 작업은 완전히 실패하지는 않지만 원하는 결과가 없습니다 (작업이 intro이 아닌 hello에 추가됨). 최고 사용보다 표준 문법 :

task hello << { ... } 
task intro(dependsOn: hello) << { ... } 

또는 더 나은 :

task hello { 
    doLast { ... } 
} 

task intro { 
    dependsOn hello 
    doLast { ... } 
} 

후자의 구문은 더 정기적으로하고 명명 된 인수 (예를 들어, dependsOn:) 및 <<를 사용할 때 만든 일반적인 실수를 방지 할 수 있습니다.

+0

첫 번째 예제가 세 번째 출력과 다른 출력을 가지고 있다는 것을 알지조차 못했습니다. 그 점을 지적 해 주셔서 감사합니다. 그것은 괄호가 필요한 이유를 해결합니다. 나는 후자의 예문을 좋아한다. 빠른 답장을 보내 주셔서 감사합니다. – jrahhali

관련 문제