2013-06-07 10 views
6

Mam 2 Gradle skrypty:W jaki sposób przekazujesz zmienne między różnymi skryptami gradle?

build.gradle i other.gradle

W moim build.gradle mam: stosuje się od: 'other.gradle'

task callotherscript << { 
    thevar = "Thevariableiwanttogetsomeplaceelse" 
    dosomecommand  

W moim inne.gradle Mam:

task dosomecommand(type: Exec) { 
    executable "someexe" 
    args "aa", "<myarg>" + <thevar>, "<intomydir>" 
} 

Moje pytanie brzmi: Jak uzyskać "thevar" z build.gradle tak Mogę go użyć w other.gradle.

biegnę: Gradle callotherscript

Komunikat o błędzie widzę to:

nie udało się znaleźć właściwość 'thevar' na zadanie ': dosomecommand'.

Przeglądam książkę kucharską i każdy oceniany przeze mnie docent był trafny, a ja po prostu nie widzę, jak to zrobić.

Dzięki

Odpowiedz

11

Można zadeklarować dodatkową właściwość, na przykład na project:

ext.foo = "bar" 

Skrypty zastosowano dalej mogą teraz uzyskać dostęp do nieruchomości jako foo.

Ważne jest, aby zrozumieć, że zadania nie wywołują innych zadań, ale zależą od innych zadań w zakresie.

+1

Dzięki za odpowiedź Peter. Przez kilka dni denerwowałem się z ustawieniami "dodatkowej własności". I bez względu na to, ile przykładów wypróbuję na stronie "ExtraPropertiesExtention", zawsze otrzymuję: "Nie mogę znaleźć właściwości" myprop "na głównym projekcie" myproject "". To jest tylko moja ocena gradle, nie powinno być prawie tak trudno przekazać zmienne między skryptami. Myślę, że po prostu będę trzymać się z dala od tego, co działa. – user1819471

+1

Sądząc z powyższego fragmentu kodu, możesz ustawić właściwość w niewłaściwej fazie (faza wykonania zamiast fazy konfiguracji). Aby odnieść sukces z Gradle, musisz zrozumieć te i inne podstawowe pojęcia Gradle (np. Zależności zadań). To z pewnością wymaga trochę czasu i wysiłku. –

Powiązane problemy