Make zipEcFiles task lazy
This change makes it so that zipEcFiles task will only get
created when we run it or JacocoReport tasks.
Test: ./gradlew projects --scan -> no longer gets created during
configuration
Change-Id: If60a73c89baf92acb64618d1c93ac96d19daa6f8
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
index 408b48b..a8aaa5e 100644
--- a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
@@ -715,7 +715,7 @@
val zipEcFilesTask = Jacoco.getZipEcFilesTask(this)
tasks.withType(JacocoReport::class.java).configureEach { task ->
- zipEcFilesTask.dependsOn(task) // zip follows every jacocoReport task being run
+ zipEcFilesTask.get().dependsOn(task) // zip follows every jacocoReport task being run
task.reports {
it.xml.isEnabled = true
it.html.isEnabled = false
diff --git a/buildSrc/src/main/kotlin/androidx/build/jacoco/Jacoco.kt b/buildSrc/src/main/kotlin/androidx/build/jacoco/Jacoco.kt
index bf41ad9..ebf1a9a 100644
--- a/buildSrc/src/main/kotlin/androidx/build/jacoco/Jacoco.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/jacoco/Jacoco.kt
@@ -94,8 +94,8 @@
*/
fun createZipEcFilesTask(project: Project): TaskProvider<Zip> {
// Examples of the two types of ec file :
- //"./out/androidx/ads-identifier-common/build/outputs/code_coverage/debugAndroidTest/connected/coverage.ec"
- //./out/androidx/lifecycle/lifecycle-runtime-ktx-lint/build/jacoco/test.exec
+ // "./out/androidx/ads-identifier-common/build/outputs/code_coverage/debugAndroidTest/connected/coverage.ec"
+ // ./out/androidx/lifecycle/lifecycle-runtime-ktx-lint/build/jacoco/test.exec
Preconditions.checkArgument(project.isRoot, "Must be root project")
var ecFilesTree: ConfigurableFileTree = project.fileTree(mapOf("dir" to project
.getRootOutDirectory(), "include" to listOf("**/jacoco/*.exec", "**/coverage.ec")))
@@ -114,7 +114,7 @@
* Returns the execution-file-zipping-task associated with the root project.
* This should only be called after the task is created.
*/
- fun getZipEcFilesTask(project: Project): Task {
- return project.rootProject.tasks.getByName(EC_FILE_ZIP_TASK_NAME)
+ fun getZipEcFilesTask(project: Project): TaskProvider<Task> {
+ return project.rootProject.tasks.named(EC_FILE_ZIP_TASK_NAME)
}
}