2014-06-27 2 views
2

Я пытаюсь передать через несколько запутанный Makefile в Gradle. Мне нужно иметь некоторые задачи, которые выполняются изолированно друг от друга, но я не могу понять, как это сделать в Gradle; например, если у меня есть build.gradle, который выглядит следующим образом:Изолированные задачи колени?

apply plugin: 'eclipse' 
apply plugin: 'idea' 

task foo { 
    println 'foo' 
} 

task bar { 
    println 'bar' 
} 

task baz { 
    println 'baz' 
} 

Если я бегу:

Gradle -q Foo

Тогда я ожидал увидеть

foo

Но вместо этого я вижу:

foobarbaz

напечатанный на мой терминал.

Как настроить Gradle только для выполнения одной задачи?

ответ

4

У вас нет заданий никаких функций; то, что вы видите, является результатом создаваемых задач.

Изменить build.gradle к этому ...

task foo { 
    doLast { 
    println 'foo' 
    } 
} 

task bar << { 
    println 'bar' 
} 

task baz { 
    println 'baz' 
} 

, а затем запустить Foo задачу:

gradle foo

Ваш выход должен быть ...

baz 
:foo 
foo 

... показывая, что база была выведена, когда была создана задача baz, тогда задача foo была выполнена ted (": foo"), за которым следует выход задачи foo. Обратите внимание, что оператор «< <» является псевдонимом для doLast.

См. Build Script Basics в Руководстве пользователя Gradle.