Migrate away from using tasks.create for buildOnServer task

Test: ./gradlew bOS --dry-run
Change-Id: I39338909a24cb28c298586343cc85e560b83e37e
diff --git a/buildSrc-tests/lint-baseline.xml b/buildSrc-tests/lint-baseline.xml
index 2e15642..61a975a 100644
--- a/buildSrc-tests/lint-baseline.xml
+++ b/buildSrc-tests/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.8.0-alpha06" type="baseline" client="gradle" dependencies="false" name="AGP (8.8.0-alpha06)" variant="all" version="8.8.0-alpha06">
+<issues format="6" by="lint 8.9.0-alpha01" type="baseline" client="gradle" dependencies="false" name="AGP (8.9.0-alpha01)" variant="all" version="8.9.0-alpha01">
 
     <issue
         id="EagerGradleConfiguration"
@@ -12,15 +12,6 @@
 
     <issue
         id="EagerGradleConfiguration"
-        message="Use register instead of create"
-        errorLine1="        val buildOnServerTask = tasks.create(BUILD_ON_SERVER_TASK, BuildOnServerTask::class.java)"
-        errorLine2="                                      ~~~~~~">
-        <location
-            file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXRootImplPlugin.kt"/>
-    </issue>
-
-    <issue
-        id="EagerGradleConfiguration"
         message="Avoid using method get"
         errorLine1="        val jvmJarTask = jvmJarTaskProvider.get()"
         errorLine2="                                            ~~~">
@@ -229,7 +220,7 @@
     <issue
         id="GradleProjectIsolation"
         message="Avoid using method getRootProject"
-        errorLine1="    rootProject.extensions.findByType&lt;NodeJsRootExtension>()?.let {"
+        errorLine1="    rootProject.extensions.findByType&lt;NodeJsRootExtension>()?.let { nodeJs ->"
         errorLine2="    ~~~~~~~~~~~">
         <location
             file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXMultiplatformExtension.kt"/>
@@ -238,7 +229,7 @@
     <issue
         id="GradleProjectIsolation"
         message="Avoid using method getRootProject"
-        errorLine1="    rootProject.extensions.findByType(YarnRootExtension::class.java)?.let {"
+        errorLine1="    rootProject.extensions.findByType(YarnRootExtension::class.java)?.let { yarn ->"
         errorLine2="    ~~~~~~~~~~~">
         <location
             file="${:buildSrc-tests*main*MAIN*sourceProvider*0*javaDir*4}/androidx/build/AndroidXMultiplatformExtension.kt"/>
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXRootImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXRootImplPlugin.kt
index 7e523d8..7521e49 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXRootImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXRootImplPlugin.kt
@@ -81,20 +81,21 @@
             }
         }
 
-        val buildOnServerTask = tasks.create(BUILD_ON_SERVER_TASK, BuildOnServerTask::class.java)
-        buildOnServerTask.cacheEvenIfNoOutputs()
-        buildOnServerTask.distributionDirectory = getDistributionDirectory()
-        if (!buildFeatures.isIsolatedProjectsEnabled()) {
-            buildOnServerTask.dependsOn(
+        val verifyPlayground = VerifyPlaygroundGradleConfigurationTask.createIfNecessary(project)
+
+        val aggregateBuildInfo =
+            if (!buildFeatures.isIsolatedProjectsEnabled()) {
                 tasks.register(
                     CREATE_AGGREGATE_BUILD_INFO_FILES_TASK,
                     CreateAggregateLibraryBuildInfoFileTask::class.java
                 )
-            )
-        }
+            } else null
 
-        VerifyPlaygroundGradleConfigurationTask.createIfNecessary(project)?.let {
-            buildOnServerTask.dependsOn(it)
+        tasks.register(BUILD_ON_SERVER_TASK, BuildOnServerTask::class.java) { task ->
+            task.cacheEvenIfNoOutputs()
+            task.distributionDirectory = getDistributionDirectory()
+            verifyPlayground?.let { task.dependsOn(it) }
+            aggregateBuildInfo?.let { task.dependsOn(it) }
         }
 
         extra.set("projects", ConcurrentHashMap<String, String>())