diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java index ac7b4ea9d..e660eb2ac 100644 --- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java +++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java @@ -540,21 +540,30 @@ protected void extendJavaProjectBuilderWithSourcesJar( JavaProjectBuilder builde return; } - // extract sources to target/maven-plugin-plugin-sources/${groupId}/${artifact}/sources - File extractDirectory = new File( request.getProject().getBuild().getDirectory(), + if ( sourcesArtifact.getFile().isFile() ) + { + // extract sources to target/maven-plugin-plugin-sources/${groupId}/${artifact}/sources + File extractDirectory = new File( request.getProject().getBuild().getDirectory(), "maven-plugin-plugin-sources/" + sourcesArtifact.getGroupId() + "/" + sourcesArtifact.getArtifactId() + "/" + sourcesArtifact.getVersion() + "/" + sourcesArtifact.getClassifier() ); - extractDirectory.mkdirs(); + extractDirectory.mkdirs(); - UnArchiver unArchiver = archiverManager.getUnArchiver( "jar" ); - unArchiver.setSourceFile( sourcesArtifact.getFile() ); - unArchiver.setDestDirectory( extractDirectory ); - unArchiver.extract(); + UnArchiver unArchiver = archiverManager.getUnArchiver( "jar" ); + unArchiver.setSourceFile( sourcesArtifact.getFile() ); + unArchiver.setDestDirectory( extractDirectory ); + unArchiver.extract(); - extendJavaProjectBuilder( builder, - Arrays.asList( extractDirectory ), - request.getDependencies() ); + extendJavaProjectBuilder( builder, + Arrays.asList( extractDirectory ), + request.getDependencies() ); + } + else if ( sourcesArtifact.getFile().isDirectory() ) + { + extendJavaProjectBuilder( builder, + Arrays.asList( sourcesArtifact.getFile() ), + request.getDependencies() ); + } } catch ( ArchiverException | NoSuchArchiverException e ) { diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java index f87848f18..f4a6a3562 100644 --- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java +++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java @@ -34,7 +34,6 @@ import com.thoughtworks.qdox.JavaProjectBuilder; import com.thoughtworks.qdox.builder.TypeAssembler; import com.thoughtworks.qdox.library.ClassNameLibrary; -import com.thoughtworks.qdox.library.SourceLibrary; import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.JavaField; import com.thoughtworks.qdox.model.JavaModule; @@ -81,13 +80,6 @@ public JavaClassConverterContext( JavaClass mojoClass, JavaClass declaringClass, Map mojoAnnotatedClasses, JavadocLinkGenerator linkGenerator, int lineNumber ) { - if ( !( mojoClass.getJavaClassLibrary() instanceof SourceLibrary ) - || !( declaringClass.getJavaClassLibrary() instanceof SourceLibrary ) ) - { - throw new IllegalStateException( "The given javaClasses must be loaded by SourceLibrary to have access to" - + "e.g. the imports statements in it" ); - } - this.mojoClass = mojoClass; this.declaringClass = declaringClass; this.javaProjectBuilder = javaProjectBuilder;