Skip to content

Commit 986cda3

Browse files
committed
Added a lazy version of createIndependentApplyTask.
1 parent f32ebe8 commit 986cda3

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/FormatExtension.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.gradle.api.file.ConfigurableFileTree;
3939
import org.gradle.api.file.FileCollection;
4040
import org.gradle.api.plugins.BasePlugin;
41+
import org.gradle.api.tasks.TaskProvider;
4142

4243
import com.diffplug.common.base.Preconditions;
4344
import com.diffplug.spotless.FormatExceptionPolicyStrict;
@@ -769,6 +770,11 @@ protected Project getProject() {
769770
return spotless.project;
770771
}
771772

773+
/** Eager version of {@link #createIndependentApplyTaskLazy(String)} */
774+
public SpotlessApply createIndependentApplyTask(String taskName) {
775+
return createIndependentApplyTaskLazy(taskName).get();
776+
}
777+
772778
/**
773779
* Creates an independent {@link SpotlessApply} for (very) unusual circumstances.
774780
*
@@ -782,19 +788,19 @@ protected Project getProject() {
782788
*
783789
* NOTE: does not respect the rarely-used <a href="https://github.com/diffplug/spotless/blob/b7f8c551a97dcb92cc4b0ee665448da5013b30a3/plugin-gradle/README.md#can-i-apply-spotless-to-specific-files">{@code spotlessFiles} property</a>.
784790
*/
785-
public SpotlessApply createIndependentApplyTask(String taskName) {
791+
public TaskProvider<SpotlessApply> createIndependentApplyTaskLazy(String taskName) {
786792
Preconditions.checkArgument(!taskName.endsWith(SpotlessExtension.APPLY), "Task name must not end with " + SpotlessExtension.APPLY);
787-
// create and setup the task
788-
SpotlessTaskImpl spotlessTask = spotless.project.getTasks().create(taskName + SpotlessTaskService.INDEPENDENT_HELPER, SpotlessTaskImpl.class);
789-
spotlessTask.init(spotless.getRegisterDependenciesTask().getTaskService());
790-
setupTask(spotlessTask);
791-
// clean removes the SpotlessCache, so we have to run after clean
792-
spotlessTask.mustRunAfter(BasePlugin.CLEAN_TASK_NAME);
793+
TaskProvider<SpotlessTaskImpl> spotlessTask = spotless.project.getTasks().register(taskName + SpotlessTaskService.INDEPENDENT_HELPER, SpotlessTaskImpl.class, task -> {
794+
task.init(spotless.getRegisterDependenciesTask().getTaskService());
795+
setupTask(task);
796+
// clean removes the SpotlessCache, so we have to run after clean
797+
task.mustRunAfter(BasePlugin.CLEAN_TASK_NAME);
798+
});
793799
// create the apply task
794-
SpotlessApply applyTask = spotless.project.getTasks().create(taskName, SpotlessApply.class);
795-
applyTask.init(spotlessTask);
796-
applyTask.dependsOn(spotlessTask);
797-
800+
TaskProvider<SpotlessApply> applyTask = spotless.project.getTasks().register(taskName, SpotlessApply.class, task -> {
801+
task.dependsOn(spotlessTask);
802+
task.init(spotlessTask.get());
803+
});
798804
return applyTask;
799805
}
800806

0 commit comments

Comments
 (0)