You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2022/07/21 20:52:56 UTC

[maven] branch MNG-7353 updated (a5ba1bb37 -> b34472e4f)

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

michaelo pushed a change to branch MNG-7353
in repository https://gitbox.apache.org/repos/asf/maven.git


    omit a5ba1bb37 improve description
    omit 53b7511a7 s/3.9/3.9.0/
    omit 6d1a59d99 [MNG-7353] support CLI "mvn pluginPrefix:version:goal"
     add f164ab5f8 [MNG-7513] Address commons-io_commons-io vulnerability found in maven latest version
     add eaac5f345 [MNG-7515] Cannot see a dependency tree for apache-maven module
     add e1e4f5bda [MNG-7511] Ensure the degreeOfConcurrency is a positive number in MavenExecutionRequest
     new b34472e4f [MNG-7353] Add support for "mvn pluginPrefix:version:goal"

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (a5ba1bb37)
            \
             N -- N -- N   refs/heads/MNG-7353 (b34472e4f)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 apache-maven/pom.xml                               |  8 +--
 maven-core/pom.xml                                 |  5 ++
 .../maven/lifecycle/internal/LifecycleStarter.java |  2 +-
 .../multithreaded/MultiThreadedBuilder.java        |  2 +-
 .../apache/maven/project/ProjectBuilderTest.java   |  9 ++-
 maven-embedder/pom.xml                             |  5 ++
 .../main/java/org/apache/maven/cli/CLIManager.java |  2 +-
 .../main/java/org/apache/maven/cli/MavenCli.java   | 68 +++++++++++++++++-----
 .../java/org/apache/maven/cli/MavenCliTest.java    | 58 ++++++++++++------
 pom.xml                                            | 20 +++++++
 10 files changed, 134 insertions(+), 45 deletions(-)


[maven] 01/01: [MNG-7353] Add support for "mvn pluginPrefix:version:goal"

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch MNG-7353
in repository https://gitbox.apache.org/repos/asf/maven.git

commit b34472e4f42a560263ec575f66303627ea6fd42a
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sat Jun 18 23:41:13 2022 +0200

    [MNG-7353] Add support for "mvn pluginPrefix:version:goal"
    
    This closes #757
---
 .../DefaultLifecycleTaskSegmentCalculator.java     |  2 +-
 .../lifecycle/internal/MojoDescriptorCreator.java  | 37 +++++++++++++++-------
 2 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java
index cb49050c7..57dd0cc89 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java
@@ -96,7 +96,7 @@ public class DefaultLifecycleTaskSegmentCalculator
         {
             if ( isGoalSpecification( task ) )
             {
-                // "pluginPrefix:goal" or "groupId:artifactId[:version]:goal"
+                // "pluginPrefix[:version]:goal" or "groupId:artifactId[:version]:goal"
 
                 lifecyclePluginResolver.resolveMissingPluginVersions( session.getTopLevelProject(), session );
 
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
index edb8dceda..fda3dedb6 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
@@ -176,18 +176,31 @@ public class MojoDescriptorCreator
         }
         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.0)
+
+            String firstToken = tok.nextToken();
+            // groupId or pluginPrefix? heuristics: groupId contains dot (.) but not pluginPrefix
+            if ( firstToken.contains( "." ) )
+            {
+                // 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( firstToken );
+                plugin.setArtifactId( tok.nextToken() );
+            }
+            else
+            {
+                // pluginPrefix:version:goal, like remote-resources:3.5.0:process
+                plugin = findPluginForPrefix( firstToken, session );
+                plugin.setVersion( tok.nextToken() );
+            }
             goal = tok.nextToken();
         }
         else if ( numTokens <= 2 )