You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/06/01 18:49:00 UTC
[jira] [Commented] (MNG-7468) Unsupported plugins parameters in configuration should be verified
[ https://issues.apache.org/jira/browse/MNG-7468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17545100#comment-17545100 ]
ASF GitHub Bot commented on MNG-7468:
-------------------------------------
michael-o commented on code in PR #741:
URL: https://github.com/apache/maven/pull/741#discussion_r887192301
##########
maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultMojoExecutionConfigurator.java:
##########
@@ -108,4 +122,77 @@ private PluginExecution findPluginExecution( String executionId, Collection<Plug
return null;
}
+ private void checkUnknownMojoConfigurationParameters( MojoExecution mojoExecution )
+ {
+ if ( mojoExecution.getConfiguration() == null || mojoExecution.getConfiguration().getChildCount() == 0 )
+ {
+ return;
+ }
+
+ MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
+
+ // in first step get parameter names of current goal
+ Set<String> parametersNamesGoal = mojoDescriptor.getParameters().stream()
+ .flatMap( this::getParameterNames )
+ .collect( Collectors.toSet() );
+
+ Set<String> unknownParameters = getUnknownParameters( mojoExecution, parametersNamesGoal );
+
+ if ( unknownParameters.isEmpty() )
+ {
+ return;
+ }
+
+ // second step get parameter names of all plugin goals
+ Set<String> parametersNamesAll = mojoDescriptor.getPluginDescriptor().getMojos().stream()
+ .flatMap( m -> m.getParameters().stream() )
+ .flatMap( this::getParameterNames )
+ .collect( Collectors.toSet() );
+
+ unknownParameters = getUnknownParameters( mojoExecution, parametersNamesAll );
+
+ unknownParameters.forEach(
+ name ->
+ {
+ MessageBuilder messageBuilder = MessageUtils.buffer()
+ .warning( "Parameter '" )
+ .warning( name )
+ .warning( "' is unknown for plugin '" )
Review Comment:
The following snippet is rather a goal which is part of plugin, no? So shouldn't it rather read ...is unknown for goal...?
> Unsupported plugins parameters in configuration should be verified
> ------------------------------------------------------------------
>
> Key: MNG-7468
> URL: https://issues.apache.org/jira/browse/MNG-7468
> Project: Maven
> Issue Type: New Feature
> Components: Plugins and Lifecycle
> Reporter: Slawomir Jaranowski
> Assignee: Slawomir Jaranowski
> Priority: Major
> Fix For: 3.9.0, 4.0.0-alpha-1, 4.0.0
>
>
> Currently we can provide any xml tags in plugin configuration even if plugin Mojo doesn't support specific parameters.
> eg we can have:
> {code:xml}
> <plugin>
> <artifactId>example-maven-plugin</artifactId>
> <version>1.1.1</version>
> <configuration>
> <xxx>zzzz</xxx>
> </configuration>
> </plugin>
> {code}
> With example configuration Mojo is executed without any warning.
> Simply if parameters is not supported - build should break with some of invalid plugin configuration exception ...
--
This message was sent by Atlassian Jira
(v8.20.7#820007)