You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2022/10/28 08:05:26 UTC

[maven-plugin-tools] branch master updated: [MPLUGIN-437] Fixes to the plugin descriptor generation (#167)

This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git


The following commit(s) were added to refs/heads/master by this push:
     new ebdb063e [MPLUGIN-437] Fixes to the plugin descriptor generation (#167)
ebdb063e is described below

commit ebdb063ea287a208dd1553a6a21e362a33c14847
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Fri Oct 28 10:05:21 2022 +0200

    [MPLUGIN-437] Fixes to the plugin descriptor generation (#167)
---
 .../JavaAnnotationsMojoDescriptorExtractor.java    | 29 ++++++++++++++--------
 .../converter/JavaClassConverterContext.java       |  8 ------
 2 files changed, 19 insertions(+), 18 deletions(-)

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 ac7b4ea9..e660eb2a 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 @@ public class JavaAnnotationsMojoDescriptorExtractor
                 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 f87848f1..f4a6a356 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 java.util.stream.Collectors;
 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 class JavaClassConverterContext
                                       Map<String, MojoAnnotatedClass> 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;