38
38
import org .gradle .api .file .ConfigurableFileTree ;
39
39
import org .gradle .api .file .FileCollection ;
40
40
import org .gradle .api .plugins .BasePlugin ;
41
+ import org .gradle .api .tasks .TaskProvider ;
41
42
42
43
import com .diffplug .common .base .Preconditions ;
43
44
import com .diffplug .spotless .FormatExceptionPolicyStrict ;
@@ -769,6 +770,11 @@ protected Project getProject() {
769
770
return spotless .project ;
770
771
}
771
772
773
+ /** Eager version of {@link #createIndependentApplyTaskLazy(String)} */
774
+ public SpotlessApply createIndependentApplyTask (String taskName ) {
775
+ return createIndependentApplyTaskLazy (taskName ).get ();
776
+ }
777
+
772
778
/**
773
779
* Creates an independent {@link SpotlessApply} for (very) unusual circumstances.
774
780
*
@@ -782,19 +788,19 @@ protected Project getProject() {
782
788
*
783
789
* 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>.
784
790
*/
785
- public SpotlessApply createIndependentApplyTask (String taskName ) {
791
+ public TaskProvider < SpotlessApply > createIndependentApplyTaskLazy (String taskName ) {
786
792
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
+ } );
793
799
// 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
+ });
798
804
return applyTask ;
799
805
}
800
806
0 commit comments