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 ;
3032import java .util .concurrent .atomic .AtomicInteger ;
3133
@@ -535,6 +537,31 @@ else if ( !module.getPackaging().equals( "pom" ) )
535537 scoverageDataDirs .size () ) );
536538 }
537539
540+ /* traverse up the module tree until a module isExecutionRoot */
541+ if ( topLevelModule == null )
542+ {
543+ Queue <MavenProject > candidateForTopLevelModules = new ArrayDeque <>(reactorProjects );
544+ while ( !candidateForTopLevelModules .isEmpty () )
545+ {
546+ MavenProject module = candidateForTopLevelModules .poll ();
547+ if ( module .isExecutionRoot () )
548+ {
549+ topLevelModule = module ;
550+ break ;
551+ }
552+ if ( module .hasParent () )
553+ {
554+ candidateForTopLevelModules .add (module .getParent ());
555+ }
556+ }
557+ }
558+ if ( topLevelModule == null )
559+ {
560+ // This exception should never be thrown.
561+ throw new IllegalStateException ("Cannot find the top level module to write the " +
562+ "aggregated reports." );
563+ }
564+
538565 File topLevelModuleOutputDirectory = rebase ( outputDirectory , topLevelModule );
539566 File topLevelModuleXmlOutputDirectory = rebase ( xmlOutputDirectory , topLevelModule );
540567
You can’t perform that action at this time.
0 commit comments