2424import javax .inject .Inject ;
2525
2626import org .gradle .api .DefaultTask ;
27- import org .gradle .api .provider .Property ;
27+ import org .gradle .api .provider .Provider ;
2828import org .gradle .api .services .BuildServiceRegistry ;
2929import org .gradle .api .tasks .Input ;
3030import org .gradle .api .tasks .Internal ;
@@ -63,9 +63,9 @@ void setup() {
6363 Preconditions .checkArgument (getProject ().getRootProject () == getProject (), "Can only be used on the root project" );
6464 String compositeBuildSuffix = getName ().substring (TASK_NAME .length ()); // see https://github.com/diffplug/spotless/pull/1001
6565 BuildServiceRegistry buildServices = getProject ().getGradle ().getSharedServices ();
66- getTaskService (). set ( buildServices .registerIfAbsent ("SpotlessTaskService" + compositeBuildSuffix , SpotlessTaskService .class , spec -> {}) );
67- usesService (getTaskService () );
68- getBuildEventsListenerRegistry ().onTaskCompletion (getTaskService () );
66+ taskService = buildServices .registerIfAbsent ("SpotlessTaskService" + compositeBuildSuffix , SpotlessTaskService .class , spec -> {});
67+ usesService (taskService );
68+ getBuildEventsListenerRegistry ().onTaskCompletion (taskService );
6969 unitOutput = new File (getProject ().getBuildDir (), "tmp/spotless-register-dependencies" );
7070 }
7171
@@ -89,8 +89,13 @@ public void trivialFunction() throws IOException {
8989 Files .write (Integer .toString (1 ), unitOutput , StandardCharsets .UTF_8 );
9090 }
9191
92+ // this field is stupid, but we need it, see https://github.com/diffplug/spotless/issues/1260
93+ private Provider <SpotlessTaskService > taskService ;
94+
9295 @ Internal
93- abstract Property <SpotlessTaskService > getTaskService ();
96+ public Provider <SpotlessTaskService > getTaskService () {
97+ return taskService ;
98+ }
9499
95100 @ Inject
96101 protected abstract BuildEventsListenerRegistry getBuildEventsListenerRegistry ();
0 commit comments