Index: src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java =================================================================== --- src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java (revision 1294469) +++ src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java (working copy) @@ -30,6 +30,7 @@ import org.apache.maven.execution.MavenSession; import org.apache.maven.toolchain.Toolchain; import org.apache.maven.toolchain.ToolchainManager; +import org.apache.maven.project.MavenProject; import org.codehaus.plexus.compiler.Compiler; import org.codehaus.plexus.compiler.CompilerConfiguration; import org.codehaus.plexus.compiler.CompilerError; @@ -296,6 +297,14 @@ */ private MavenSession session; + /** + * The Maven project. + * @parameter expression="${project}" + * @required + * @readonly + */ + private MavenProject project; + protected abstract SourceInclusionScanner getSourceInclusionScanner( int staleMillis ); protected abstract SourceInclusionScanner getSourceInclusionScanner( String inputFileEnding ); @@ -386,8 +395,6 @@ compilerConfiguration.setClasspathEntries( getClasspathElements() ); - compilerConfiguration.setSourceLocations( compileSourceRoots ); - compilerConfiguration.setOptimize( optimize ); compilerConfiguration.setDebug( debug ); @@ -419,8 +426,17 @@ compilerConfiguration.setProc( proc ); - compilerConfiguration.setGeneratedSourcesDirectory( getGeneratedSourcesDirectory() ); + File generatedSourcesDirectory = getGeneratedSourcesDirectory(); + compilerConfiguration.setGeneratedSourcesDirectory( generatedSourcesDirectory ); + if ( generatedSourcesDirectory != null ) { + String generatedSourcesDirectoryPath = generatedSourcesDirectory.getAbsolutePath(); + project.addCompileSourceRoot( generatedSourcesDirectoryPath ); + compileSourceRoots.add(generatedSourcesDirectoryPath); + } + + compilerConfiguration.setSourceLocations( compileSourceRoots ); + compilerConfiguration.setAnnotationProcessors( annotationProcessors ); compilerConfiguration.setSourceEncoding( encoding );