build: refine AggregatedJacocoReportTask
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/d7bddde3 Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/d7bddde3 Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/d7bddde3 Branch: refs/heads/develop Commit: d7bddde35188f32b2a27129ba1aa241a2716a9dd Parents: 965749d Author: Paul Merlin <[email protected]> Authored: Sun Apr 23 20:12:43 2017 +0200 Committer: Paul Merlin <[email protected]> Committed: Sun Apr 23 20:12:43 2017 +0200 ---------------------------------------------------------------------- .../reports/AggregatedJacocoReportTask.groovy | 56 ++++++++++++++------ 1 file changed, 40 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/d7bddde3/buildSrc/src/main/groovy/org/apache/polygene/gradle/structure/reports/AggregatedJacocoReportTask.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/main/groovy/org/apache/polygene/gradle/structure/reports/AggregatedJacocoReportTask.groovy b/buildSrc/src/main/groovy/org/apache/polygene/gradle/structure/reports/AggregatedJacocoReportTask.groovy index 050271d..5bb3513 100644 --- a/buildSrc/src/main/groovy/org/apache/polygene/gradle/structure/reports/AggregatedJacocoReportTask.groovy +++ b/buildSrc/src/main/groovy/org/apache/polygene/gradle/structure/reports/AggregatedJacocoReportTask.groovy @@ -66,28 +66,52 @@ class AggregatedJacocoReportTask extends DefaultTask } structure( name: 'Apache Polygene⢠(Java Edition) SDK' ) { group( name: 'Core' ) { - classfiles { coreProjects.collect { p -> fileset dir: "${ p.buildDir.path }/classes/main" } } - sourcefiles { samplesProjects.collect { p -> sourceRootsOf( p ).each { sourceRoot -> fileset dir: sourceRoot.absolutePath } } } + classfiles { coreProjects.collect { p -> fileset( dir: "${ p.buildDir.path }/classes/main" ) } } + sourcefiles { + coreProjects.collect { p -> + AggregatedJacocoReportTask.sourceRootsOf( p ).each { sourceRoot -> fileset( dir: "${ sourceRoot }" ) } + } + } } group( name: 'Libraries' ) { - classfiles { libProjects.collect { p -> fileset dir: "${ p.buildDir.path }/classes/main" } } - sourcefiles { samplesProjects.collect { p -> sourceRootsOf( p ).each { sourceRoot -> fileset dir: sourceRoot.absolutePath } } } + classfiles { libProjects.collect { p -> fileset( dir: "${ p.buildDir.path }/classes/main" ) } } + sourcefiles { + libProjects.collect { p -> + AggregatedJacocoReportTask.sourceRootsOf( p ).each { sourceRoot -> fileset( dir: "${ sourceRoot }" ) } + } + } } group( name: 'Extensions' ) { - classfiles { extProjects.collect { p -> fileset dir: "${ p.buildDir.path }/classes/main" } } - sourcefiles { samplesProjects.collect { p -> sourceRootsOf( p ).each { sourceRoot -> fileset dir: sourceRoot.absolutePath } } } + classfiles { extProjects.collect { p -> fileset( dir: "${ p.buildDir.path }/classes/main" ) } } + sourcefiles { + extProjects.collect { p -> + AggregatedJacocoReportTask.sourceRootsOf( p ).each { sourceRoot -> fileset( dir: "${ sourceRoot }" ) } + } + } } group( name: 'Tools' ) { - classfiles { toolsProjects.collect { p -> fileset dir: "${ p.buildDir.path }/classes/main" } } - sourcefiles { samplesProjects.collect { p -> sourceRootsOf( p ).each { sourceRoot -> fileset dir: sourceRoot.absolutePath } } } + classfiles { toolsProjects.collect { p -> fileset( dir: "${ p.buildDir.path }/classes/main" ) } } + sourcefiles { + toolsProjects.collect { p -> + AggregatedJacocoReportTask.sourceRootsOf( p ).each { sourceRoot -> fileset( dir: "${ sourceRoot }" ) } + } + } } group( name: 'Tutorials' ) { - classfiles { tutoProjects.collect { p -> fileset dir: "${ p.buildDir.path }/classes/main" } } - sourcefiles { samplesProjects.collect { p -> sourceRootsOf( p ).each { sourceRoot -> fileset dir: sourceRoot.absolutePath } } } + classfiles { tutoProjects.collect { p -> fileset( dir: "${ p.buildDir.path }/classes/main" ) } } + sourcefiles { + tutoProjects.collect { p -> + AggregatedJacocoReportTask.sourceRootsOf( p ).each { sourceRoot -> fileset( dir: "${ sourceRoot }" ) } + } + } } group( name: 'Samples' ) { - classfiles { samplesProjects.collect { p -> fileset dir: "${ p.buildDir.path }/classes/main" } } - sourcefiles { samplesProjects.collect { p -> sourceRootsOf( p ).each { sourceRoot -> fileset dir: sourceRoot.absolutePath } } } + classfiles { samplesProjects.collect { p -> fileset( dir: "${ p.buildDir.path }/classes/main" ) } } + sourcefiles { + samplesProjects.collect { p -> + AggregatedJacocoReportTask.sourceRootsOf( p ).each { sourceRoot -> fileset( dir: "${ sourceRoot }" ) } + } + } } } csv destfile: "${ outputDirectory }/jacoco.csv", encoding: 'UTF-8' @@ -97,10 +121,10 @@ class AggregatedJacocoReportTask extends DefaultTask } } - private static List<File> sourceRootsOf( Project project ) + private static List<String> sourceRootsOf( Project project ) { - [ 'src/main/java', 'src/main/groovy', 'src/main/kotlin' ] - .collect { project.file( it ) } - .findAll { it.exists() } + [ 'src/main/java', 'src/main/groovy', 'src/main/kotlin' ].collect { project.file it } + .findAll { it.directory } + .collect { it.absolutePath } } }
