2013-05-01 5 views
0

У меня есть Gradle задача, которая требует ant.exec(), чтобы сделать SVN экспорт в каталог:Gradle ждать ANT задачи для завершения

/* 
* Get code from repository into the 'src' directory 
*/ 
task getSource << { 
    ant.exec(executable: svn_executable) { 
     arg(value: 'export') 
     arg(value: repository) 
     arg(value: 'src') 
    } 
} 

Тогда у меня есть задача, которая удаляет определенные файлы в директории экспортируемой :

task deletes(type: Delete) { 
    ant.delete() { 
     fileset(dir: "src", includes: "**/*template*") 
    } 
} 

А потом я еще одна задача, которая требует getSource и удаляет один за другим.

Проблема заключается в том, что gradle не дождался получения getSource, чтобы выполнить и перейти прямо к следующей задаче, что является проблемой, поскольку в этот момент нет файлов, которые необходимо удалить.

Есть ли способ обойти это?

Спасибо!

ответ

1

Ваша задача «удалить» вызывает ant.delete на фазе конфигурации вместо фазы выполнения градиента. Посмотрите на DSL ссылки Gradle о том, как правильно настроить «Удалить» задачу на http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.Delete.html

надежда, что помогает,

приветствий,

Рене

1

И вот у меня есть другая задача, которая вызывает getSource и удаляет один за другим.

Что именно вы подразумеваете под этим? Задача Gradle не может вызывать другие задачи; это может зависеть только от них.

+0

Да, вы правы. Другая задача зависит от * getSource * и * удаляет * –

+0

Рене уже заметил ошибку. –