Gradle Goodness: Replacing
Gradle 3.2 deprecates the <<
operator to add actions to a task. The <<
operator maps to the leftShift
method of a task. This operator confuses a lot people that are new to Gradle. Because without the operator we are configuring a task instead of adding actions. I can tell from experience the mistake is easily made. If we use the <<
in our build script with Gradle 3.2 we get a warning on the console. The warning message already mentions a solution: use the doLast
method to add actions.
In the following example build script we define the task deprecatedSample
using the <<
operator. The other task newSample
uses the doLast
method to add an action:
// Since Gradle 3.2 the << (leftShift) operator
// is deprecated. The operator can confuse
// people, because without the operator
// we would configure the deprecatedSample task,
// instead of adding the action statement:
// println 'Sample task'.
task deprecatedSample << {
println 'Sample task'
}
// To have no confusion we should use
// the doLast method of a task to add
// the action statement:
// println 'Sample task'.
task newSample {
doLast {
println 'Sample task'
}
}
When we run the deprecatedSample
task we see in the output the warning that the leftShift
method has been deprecated:
$ gradle deprecatedSample
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
at build_dq65b0mbv52w2ikhya3h9ru8d.run(/Users/mrhaki/Projects/sample/build.gradle)
:deprecatedSample
Sample task
BUILD SUCCESSFUL
Total time: 0.793 secs
$
We still have time to fix our build scripts, because in Gradle 5 the leftShift
method will be removed.
Written with Gradle 3.2.