diff --git a/gradle_scripts/jacoco.gradle b/gradle_scripts/jacoco.gradle index 0528457c..b7f3cdc5 100644 --- a/gradle_scripts/jacoco.gradle +++ b/gradle_scripts/jacoco.gradle @@ -6,7 +6,7 @@ jacoco { def mergedJacocoExec = file("${project.buildDir}/jacoco/jacocoMerged.exec") -tasks.create(name: 'jacocoMergeReports', type: JacocoMerge) { +def merge = tasks.register('jacocoMergeReports', JacocoMerge) { group = "Reporting" description = "Merge all jacoco reports from projects into one." @@ -27,7 +27,8 @@ tasks.create(name: 'jacocoMergeReports', type: JacocoMerge) { destinationFile(mergedJacocoExec) } -tasks.create(name: 'jacocoFullReport', type: JacocoReport, dependsOn: 'jacocoMergeReports') { +tasks.register('jacocoFullReport', JacocoReport) { + dependsOn merge group = "Reporting" description = "Generate full Jacoco coverage report including all modules." @@ -46,47 +47,46 @@ tasks.create(name: 'jacocoFullReport', type: JacocoReport, dependsOn: 'jacocoMer // Task will run anyway even if initial inputs are empty onlyIf = { true } - doFirst { - project.subprojects { subproject -> - subproject.plugins.withId("jacoco") { - project.logger.info("${subproject.name} has Jacoco plugin applied") - subproject.plugins.withId("kotlin-android") { - project.logger.info("${subproject.name} is android project") - def mainSources = subproject.extensions.findByName("android").sourceSets['main'] - project.logger.info("Android sources: ${mainSources.java.srcDirs}") - mainSources.java.srcDirs.forEach { - additionalSourceDirs(it) - } - project.logger.info("Subproject exclude: ${subproject.jacocoExclude}") - additionalClassDirs(fileTree( - dir: "${subproject.buildDir}/tmp/kotlin-classes/debug", - excludes: subproject.jacocoExclude - )) + project.subprojects { subproject -> + subproject.plugins.withId("jacoco") { + project.logger.info("${subproject.name} has Jacoco plugin applied") + subproject.plugins.withId("kotlin-android") { + project.logger.info("${subproject.name} is android project") + def mainSources = subproject.extensions.findByName("android").sourceSets['main'] + project.logger.info("Android sources: ${mainSources.java.srcDirs}") + mainSources.java.srcDirs.forEach { + additionalSourceDirs(it) } - subproject.plugins.withId("kotlin") { plugin -> - project.logger.info("${subproject.name} is common kotlin project") - SourceDirectorySet mainSources = subproject.extensions.getByName("kotlin") - .sourceSets[SourceSet.MAIN_SOURCE_SET_NAME] - .kotlin - mainSources.srcDirs.forEach { - project.logger.debug("Adding sources: $it") - additionalSourceDirs(it) - } - project.logger.info("Subproject exclude: ${subproject.jacocoExclude}") - additionalClassDirs(fileTree( - dir: "${subproject.buildDir}/classes/kotlin/main", - excludes: subproject.jacocoExclude - )) + project.logger.info("Subproject exclude: ${subproject.jacocoExclude}") + additionalClassDirs(fileTree( + dir: "${subproject.buildDir}/tmp/kotlin-classes/debug", + excludes: subproject.jacocoExclude + )) + } + subproject.plugins.withId("kotlin") { plugin -> + project.logger.info("${subproject.name} is common kotlin project") + SourceDirectorySet mainSources = subproject.extensions.getByName("kotlin") + .sourceSets[SourceSet.MAIN_SOURCE_SET_NAME] + .kotlin + mainSources.srcDirs.forEach { + project.logger.debug("Adding sources: $it") + additionalSourceDirs(it) } + project.logger.info("Subproject exclude: ${subproject.jacocoExclude}") + additionalClassDirs(fileTree( + dir: "${subproject.buildDir}/classes/kotlin/main", + excludes: subproject.jacocoExclude + )) + } - subproject.tasks.withType(Test) { task -> - File destFile = task.extensions.getByType(JacocoTaskExtension.class).destinationFile - if (destFile.exists() && !task.name.contains("Release")) { - project.logger.info("Adding execution data: $destFile") - executionData(destFile) - } + subproject.tasks.withType(Test) { task -> + File destFile = task.extensions.getByType(JacocoTaskExtension.class).destinationFile + if (destFile.exists() && !task.name.contains("Release")) { + project.logger.info("Adding execution data: $destFile") + executionData(destFile) } } } } + }