diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java index fdc8fb0..0c49690 100644 --- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java +++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java @@ -100,19 +100,34 @@ public class JavaAnnotationsMojoDescriptorExtractor public List execute( PluginToolsRequest request ) throws ExtractionException, InvalidPluginDescriptorException { + Map mojoAnnotatedClasses = scanAnnotations( request ); + Map javaClassesMap = scanJavadoc( request, mojoAnnotatedClasses.values() ); + + populateDataFromJavadoc( mojoAnnotatedClasses, javaClassesMap ); + + return toMojoDescriptors( mojoAnnotatedClasses, request, javaClassesMap ); + } + + private Map scanAnnotations( PluginToolsRequest request ) + throws ExtractionException + { MojoAnnotationsScannerRequest mojoAnnotationsScannerRequest = new MojoAnnotationsScannerRequest(); - mojoAnnotationsScannerRequest.setClassesDirectories( - Arrays.asList( new File( request.getProject().getBuild().getOutputDirectory() ) ) ); + File output = new File( request.getProject().getBuild().getOutputDirectory() ); + mojoAnnotationsScannerRequest.setClassesDirectories( Arrays.asList( output ) ); mojoAnnotationsScannerRequest.setDependencies( request.getDependencies() ); mojoAnnotationsScannerRequest.setProject( request.getProject() ); - Map mojoAnnotatedClasses = - mojoAnnotationsScanner.scan( mojoAnnotationsScannerRequest ); + return mojoAnnotationsScanner.scan( mojoAnnotationsScannerRequest ); + } + private Map scanJavadoc( PluginToolsRequest request, + Collection mojoAnnotatedClasses ) + throws ExtractionException + { // found artifact from reactors to scan sources // we currently only scan sources from reactors List mavenProjects = new ArrayList(); @@ -120,7 +135,7 @@ public class JavaAnnotationsMojoDescriptorExtractor // if we need to scan sources from external artifacts Set externalArtifacts = new HashSet(); - for ( MojoAnnotatedClass mojoAnnotatedClass : mojoAnnotatedClasses.values() ) + for ( MojoAnnotatedClass mojoAnnotatedClass : mojoAnnotatedClasses ) { if ( !StringUtils.equals( mojoAnnotatedClass.getArtifact().getArtifactId(), request.getProject().getArtifact().getArtifactId() ) ) @@ -163,13 +178,9 @@ public class JavaAnnotationsMojoDescriptorExtractor javaClassesMap.putAll( discoverClasses( request ) ); - populateDataFromJavadoc( mojoAnnotatedClasses, javaClassesMap ); - - return toMojoDescriptors( mojoAnnotatedClasses, request, javaClassesMap ); - + return javaClassesMap; } - protected Map discoverClassesFromSourcesJar( Artifact artifact, PluginToolsRequest request, String classifier ) throws ExtractionException