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

This closes #757
This commit is contained in:
Hervé Boutemy 2022-06-18 23:41:13 +02:00 committed by Hervé Boutemy
parent e1e4f5bda0
commit 95bdbf6821
2 changed files with 26 additions and 13 deletions

View File

@ -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 );

View File

@ -175,6 +175,12 @@ public class MojoDescriptorCreator
}
}
else if ( numTokens == 3 )
{
// 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
//
@ -186,8 +192,15 @@ public class MojoDescriptorCreator
// goal
//
plugin = new Plugin();
plugin.setGroupId( tok.nextToken() );
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 )