2013-06-07 6 views
6

내가 2 Gradle을 스크립트가 : 내 build.gradle에서다른 gradley 스크립트간에 어떻게 변수를 전달합니까?

other.gradle

build.gradle 및 을 나는이 : 은 적용에서

task callotherscript << { 
    thevar = "Thevariableiwanttogetsomeplaceelse" 
    dosomecommand  

'other.gradle'내 other.gradle 내가 가지고있는 것 :

내 질문은 : build.gradle에서 "thevar"를 어떻게 얻을 수 있습니까? other.gradle에서 사용할 수 있습니다.

내가 실행 : Gradle을의 callotherscript

내가보고하고 오류 메시지는 다음과 같습니다 'dosomecommand'

이 작업에 재산 'thevar'을 (를) 찾을 수 없습니다.

나는 요리 책을 훑어 보았고, 내가 생각한 모든 책은 관련성이 있으며, 나는 그것을하는 법을 보지 않고있다.

감사

답변

11

당신은 project에 예를 들어 추가 특성를 선언 할 수

ext.foo = "bar" 

스크립트는 이제 foo으로 속성에 액세스 할 수 있습니다 더 아래로 적용했다.

타스크는 다른 타스크를 호출하지 않지만 타 타스크에 종속됨을 이해하는 것이 중요합니다.

+1

답변 해 주셔서 감사합니다. 나는 며칠 동안 "추가 속성"설정으로 주변을 어지럽 혀왔다. 그리고 "ExtraPropertiesExtention"페이지에서 얼마나 많은 예제를 사용해도 항상 다음과 같이 끝납니다 : "루트 프로젝트 'myproject'에서 'myprop'속성을 찾을 수 없습니다." 이것은 gradle에 대한 평가 일 뿐이므로 스크립트간에 변수를 전달하는 것이 거의 어렵지 않아야합니다. 내 생각에 나는 그저 그라데이션을 피하고 작동하는 것에 매달릴 것입니다. – user1819471

+1

위의 코드 조각으로 판단하면 잘못된 단계 (구성 단계 대신 실행 단계)에서 속성을 설정할 수 있습니다. Gradle을 성공적으로 사용하려면 이러한 핵심 개념 및 기타 핵심 Gradle 개념 (예 : 작업 종속성)을 이해해야합니다. 이것은 확실히 약간의 노력과 시간이 필요합니다. –

관련 문제