{"record":{"id":"8c3e81bec814031f","repo":"apache/maven","slug":"parameter-is-unknown-for-plugin","errorCode":null,"errorMessage":"Parameter '{}' is unknown for plugin '{}:{}:{} ({})'","messagePattern":"Parameter '(.+?)' is unknown for plugin '(.+?):(.+?):(.+?) \\((.+?)\\)'","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultMojoExecutionConfigurator.java","lineNumber":180,"sourceCode":"                    .builder()\n                    .warning(\"Parameter '\")\n                    .warning(name)\n                    .warning(\"' is unknown for plugin '\")\n                    .warning(mojoExecution.getArtifactId())\n                    .warning(\":\")\n                    .warning(mojoExecution.getVersion())\n                    .warning(\":\")\n                    .warning(mojoExecution.getGoal());\n\n            if (mojoExecution.getExecutionId() != null) {\n                messageBuilder.warning(\" (\");\n                messageBuilder.warning(mojoExecution.getExecutionId());\n                messageBuilder.warning(\")\");\n            }\n\n            messageBuilder.warning(\"'\");\n\n            logger.warn(messageBuilder.toString());\n        });\n    }\n\n    private Stream<String> getParameterNames(Parameter parameter) {\n        if (parameter.getAlias() != null) {\n            return Stream.of(parameter.getName(), parameter.getAlias());\n        } else {\n            return Stream.of(parameter.getName());\n        }\n    }\n\n    private Set<String> getUnknownParameters(MojoExecution mojoExecution, Set<String> parameters) {\n        return stream(mojoExecution.getConfiguration().getChildren())\n                .map(Xpp3Dom::getName)\n                .filter(name -> !parameters.contains(name))\n                .collect(Collectors.toSet());\n    }\n}","sourceCodeStart":162,"sourceCodeEnd":198,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultMojoExecutionConfigurator.java#L162-L198","documentation":"DefaultMojoExecutionConfigurator merges the POM's plugin <configuration> into the mojo execution and then checks every element name against the goal's parameter descriptors (including aliases). An element matching no parameter of the goal - and no parameter of any goal of that plugin - is reported with this warning and ignored when the mojo runs.","triggerScenarios":"A <configuration> element under a plugin execution (or plugin-level config applied to a goal) that is misspelled, was renamed in a newer plugin version, or belongs to a different goal of the same plugin (the all-goals second pass removes those from the report).","commonSituations":"Upgrading plugins where parameters were renamed (e.g. compiler plugin argument changes); copy-pasted configuration snippets from tutorials targeting different plugin versions; typos like <soureDir> for <sourceDir>.","solutions":["List the goal's real parameters: mvn help:describe -DgroupId=.. -DartifactId=.. -Dversion=.. -Dgoal=<goal> -Ddetail","Rename or remove the reported element from the execution's <configuration> in your POM","If the parameter exists in a newer plugin version, pin the plugin to that version instead of dropping the config"],"exampleFix":"<!-- before -->\n<plugin>\n  <artifactId>maven-compiler-plugin</artifactId>\n  <version>3.13.0</version>\n  <configuration>\n    <soureDirectory>${basedir}/src</soureDirectory> <!-- typo -->\n  </configuration>\n</plugin>\n<!-- after -->\n<plugin>\n  <artifactId>maven-compiler-plugin</artifactId>\n  <version>3.13.0</version>\n  <configuration>\n    <sourceDirectory>${basedir}/src</sourceDirectory>\n  </configuration>\n</plugin>","handlingStrategy":"validation","validationCode":"# CI lint: diff configured parameter names against the plugin descriptor\nmvn -q help:describe -DartifactId=maven-compiler-plugin -DgroupId=org.apache.maven.plugins \\\n    -Dversion=3.13.0 -Dgoal=compile -Ddetail | grep -oP '^\\s+\\w+(?=/)' > /tmp/params.txt\n# then assert every <configuration> child in pom.xml appears in /tmp/params.txt","typeGuard":null,"tryCatchPattern":null,"preventionTips":["After any plugin upgrade, re-check configuration elements against help:describe -Ddetail","Watch for this warning in CI logs - it flags dead configuration before it bites","Prefer explicit plugin versions so parameter sets stay stable"],"tags":["plugin-configuration","unknown-parameter","mojo-descriptor","typo"],"backgroundTag":"unknown-plugin-parameter","analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}