You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by GitBox <gi...@apache.org> on 2022/07/05 07:36:04 UTC

[GitHub] [maven] mthmulders commented on a diff in pull request #757: [MNG-7353] support CLI "mvn pluginPrefix:version:goal"

mthmulders commented on code in PR #757:
URL: https://github.com/apache/maven/pull/757#discussion_r913478933


##########
maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java:
##########
@@ -176,18 +176,31 @@ public MojoDescriptor getMojoDescriptor( String task, MavenSession session, Mave
         }
         else if ( numTokens == 3 )
         {
-            // We have everything that we need except the version
-            //
-            // org.apache.maven.plugins:maven-remote-resources-plugin:???:process
-            //
-            // groupId
-            // artifactId
-            // ???
-            // goal
-            //
-            plugin = new Plugin();
-            plugin.setGroupId( tok.nextToken() );
-            plugin.setArtifactId( tok.nextToken() );
+            // groupId:artifactId:goal or pluginPrefix:version:goal (since Maven 3.9)
+
+            String firstToken = tok.nextToken();
+            // groupId or pluginPrefix? heuristics: groupId contains . but not pluginPrefix
+            if ( firstToken.contains( "." ) )

Review Comment:
   I gave it some thought, but I can't find a better heuristic either. The only thing more or less foolproof would be to look at the first token, assuming it is a plugin prefix. If that lookup yields nothing, it would be a groupId.
   
   Even that is not 100% safe, though. Imagine you're not connected to the network, so lookup fails, so we decide it's a groupId -- this certainly doesn't make sense. But more importantly, it's probably quite costly compared to a `String.contains` :-).



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org