File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
src/main/java/org/scoverage/plugin Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 2323import java .io .File ;
2424import java .io .FileInputStream ;
2525import java .util .ArrayList ;
26+ import java .util .ArrayDeque ;
2627import java .util .Arrays ;
2728import java .util .List ;
2829import java .util .Locale ;
30+ import java .util .Queue ;
2931import java .util .ResourceBundle ;
3032
3133import org .apache .maven .doxia .module .xhtml .decoration .render .RenderingContext ;
@@ -503,6 +505,31 @@ else if ( !module.getPackaging().equals( "pom" ) )
503505 scoverageDataDirs .size () ) );
504506 }
505507
508+ /* traverse up the module tree until a module isExecutionRoot */
509+ if ( topLevelModule == null )
510+ {
511+ Queue <MavenProject > candidateForTopLevelModules = new ArrayDeque <>(reactorProjects );
512+ while ( !candidateForTopLevelModules .isEmpty () )
513+ {
514+ MavenProject module = candidateForTopLevelModules .poll ();
515+ if ( module .isExecutionRoot () )
516+ {
517+ topLevelModule = module ;
518+ break ;
519+ }
520+ if ( module .hasParent () )
521+ {
522+ candidateForTopLevelModules .add (module .getParent ());
523+ }
524+ }
525+ }
526+ if ( topLevelModule == null )
527+ {
528+ // This exception should never be thrown.
529+ throw new IllegalStateException ("Cannot find the top level module to write the " +
530+ "aggregated reports." );
531+ }
532+
506533 File topLevelModuleOutputDirectory = rebase ( outputDirectory , topLevelModule );
507534 File topLevelModuleXmlOutputDirectory = rebase ( xmlOutputDirectory , topLevelModule );
508535
You can’t perform that action at this time.
0 commit comments