diff --git a/pom.xml b/pom.xml
index 49ea7fd6..bdb0aaaf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,7 +85,7 @@ under the License.
2.2.1
3.3
- 1.0.4
+ 1.0.5-SNAPSHOT
diff --git a/src/main/java/org/scoverage/plugin/SCoverageReportMojo.java b/src/main/java/org/scoverage/plugin/SCoverageReportMojo.java
index f82810de..bd6f6a52 100644
--- a/src/main/java/org/scoverage/plugin/SCoverageReportMojo.java
+++ b/src/main/java/org/scoverage/plugin/SCoverageReportMojo.java
@@ -19,6 +19,8 @@
import java.io.File;
//import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
@@ -41,6 +43,9 @@
import org.codehaus.plexus.util.StringUtils;
import scala.Predef$;
+import scala.collection.JavaConversions;
+import scala.collection.Seq;
+
import scoverage.Coverage;
import scoverage.IOUtils;
import scoverage.Serializer;
@@ -162,7 +167,12 @@ public void generate( Sink sink, Locale locale )
{
long ts = System.currentTimeMillis();
- File sourceDir = new File( project.getBuild().getSourceDirectory() );
+ List sourceDirs = project.getExecutionProject().getCompileSourceRoots();
+ List sourceRoots = new ArrayList( sourceDirs.size() );
+ for ( String dir: sourceDirs )
+ {
+ sourceRoots.add( new File( dir ) );
+ }
mkdirs( outputDirectory );
mkdirs( xmlOutputDirectory );
@@ -196,14 +206,16 @@ public void generate( Sink sink, Locale locale )
.wrapRefArray( measurementFiles ) );
coverage.apply( measurements );
+ Seq sourceRootsAsScalaSeq = JavaConversions.asScalaBuffer( sourceRoots );
+
getLog().info( "[scoverage] Generating cobertura XML report..." );
- new CoberturaXmlWriter( project.getBasedir(), xmlOutputDirectory ).write( coverage );
+ new CoberturaXmlWriter( sourceRootsAsScalaSeq, xmlOutputDirectory ).write( coverage );
getLog().info( "[scoverage] Generating scoverage XML report..." );
- new ScoverageXmlWriter( sourceDir, xmlOutputDirectory, false ).write( coverage );
+ new ScoverageXmlWriter( sourceRootsAsScalaSeq, xmlOutputDirectory, false ).write( coverage );
getLog().info( "[scoverage] Generating scoverage HTML report..." );
- new ScoverageHtmlWriter( sourceDir, outputDirectory ).write( coverage );
+ new ScoverageHtmlWriter( sourceRootsAsScalaSeq, outputDirectory ).write( coverage );
long te = System.currentTimeMillis();
getLog().debug( String.format( "Mojo execution time: %d ms", te - ts ) );