2013-06-07 2 views
6

У меня 2 Gradle скрипты:Как передать переменные между разными сценариями градиента?

build.gradle и other.gradle

В моей build.gradle у меня есть: применять с: 'other.gradle'

task callotherscript << { 
    thevar = "Thevariableiwanttogetsomeplaceelse" 
    dosomecommand  

В моей other.gradle у меня есть:

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

Мой вопрос: Как я могу получить "thevar" от build.gradle так Я могу использовать его в other.gradle.

Я бегу: Gradle callotherscript

Сообщение об ошибке я вижу это:

Не удалось найти свойство 'thevar' на задаче ': dosomecommand.

Я просмотрел поваренную книгу, и каждый документ градации, который, как я думал, был уместным, и я просто не вижу, как это сделать.

Благодаря

ответ

11

Вы можете объявить дополнительное свойство, например, на project:

ext.foo = "bar" 

Сценарии применяются дальше теперь могут получить доступ к собственности, как foo.

Важно понимать, что задачи не вызывают другие задачи, но зависит от других задач:.

+1

Спасибо за ответ Peter. Я уже несколько дней возился с настройками «дополнительных свойств». И независимо от того, сколько примеров я пытаюсь на странице «ExtraPropertiesExtention», я всегда получаю: «Не удалось найти свойство« myprop »в корневом проекте« myproject »». Это всего лишь моя оценка градиента, это не должно быть почти так сложно передать переменные между сценариями. Я думаю, что я просто буду избегать градиента и придерживаться того, что работает. – user1819471

+1

Судя по приведенному выше фрагменту кода, вы можете настроить свойство на неправильной фазе (фаза выполнения вместо фазы конфигурации). Чтобы быть успешным с Gradle, вам нужно понять эти и другие основные концепции Gradle (например, зависимости задач). Это, безусловно, требует определенных усилий и времени. –

Смежные вопросы