#gradle #build.gradle
#gradle #build.gradle
Вопрос:
Я пытаюсь перенести несколько запутанный 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
Тогда я ожидаю увидеть
фу
Но вместо этого я вижу:
foobarbaz
распечатано на моем терминале.
Как я могу настроить Gradle для выполнения только одной задачи?
Ответ №1:
Вы не предоставили задачам никакой функциональности; то, что вы видите, — это выходные данные создаваемых задач.
Измените build.gradle на это…
task foo {
doLast {
println 'foo'
}
}
task bar << {
println 'bar'
}
task baz {
println 'baz'
}
а затем запустите задачу foo:
gradle foo
Ваш вывод должен быть…
baz
:foo
foo
…показывает, что baz был выведен при создании задачи baz, затем была выполнена задача foo («:foo») с последующим выводом задачи foo. Обратите внимание, что оператор «<<» является псевдонимом для doLast.
См. Основы сценария сборки в Руководстве пользователя Gradle.