{"record":{"id":"d61bcc969c04e2a1","repo":"apache/maven","slug":"mojo-issue-s","errorCode":null,"errorMessage":"  Mojo {} issue(s):","messagePattern":"  Mojo (.+?) issue\\(s\\):","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java","lineNumber":255,"sourceCode":"                            logger.warn(\"   * {}\", pluginDeclaration);\n                        }\n                    }\n                    if (!issues.pluginIssues.isEmpty()) {\n                        for (IssueLocality issueLocality : issueLocalitiesToReport) {\n                            Set<String> pluginIssues = issues.pluginIssues.get(issueLocality);\n                            if (pluginIssues != null && !pluginIssues.isEmpty()) {\n                                logger.warn(\"  Plugin {} issue(s):\", issueLocality);\n                                for (String pluginIssue : pluginIssues) {\n                                    logger.warn(\"   * {}\", pluginIssue);\n                                }\n                            }\n                        }\n                    }\n                    if (!issues.mojoIssues.isEmpty()) {\n                        for (IssueLocality issueLocality : issueLocalitiesToReport) {\n                            Map<String, LinkedHashSet<String>> mojoIssues = issues.mojoIssues.get(issueLocality);\n                            if (mojoIssues != null && !mojoIssues.isEmpty()) {\n                                logger.warn(\"  Mojo {} issue(s):\", issueLocality);\n                                for (String mojoInfo : mojoIssues.keySet()) {\n                                    logger.warn(\"   * Mojo {}\", mojoInfo);\n                                    for (String mojoIssue : mojoIssues.get(mojoInfo)) {\n                                        logger.warn(\"     - {}\", mojoIssue);\n                                    }\n                                }\n                            }\n                        }\n                    }\n                    logger.warn(\"\");\n                }\n            }\n            logger.warn(\"\");\n            if (validationReportLevel == ValidationReportLevel.VERBOSE) {\n                logger.warn(\n                        \"Fix reported issues by adjusting plugin configuration or by upgrading above listed plugins. If no upgrade available, please notify plugin maintainers about reported issues.\");\n            }\n            logger.warn(","sourceCodeStart":237,"sourceCodeEnd":273,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java#L237-L273","documentation":"VERBOSE report section header for mojo-level issues, grouped by IssueLocality. Unlike plugin-level findings, these were reported per mojo (PluginValidationManager.reportPluginMojoValidationIssue) - typically API misuse inside a specific mojo class rather than the plugin's packaging. One header per locality with issues, each followed by '   * Mojo ...' entries.","triggerScenarios":"-Dmaven.plugin.validation=verbose build where issues.mojoIssues has a non-empty map for a locality; populated when a mojo execution triggered per-mojo checks (deprecated API usage, missing annotations).","commonSituations":"Older mojos calling removed/Deprecated Mojo API methods (e.g. the no-arg execute variants or Session/ getSession misuse); plugins where only some goals are problematic.","solutions":["Identify the mojo under the header and either avoid that goal, or upgrade the plugin to a release where the mojo was fixed","For in-house plugins, refactor the flagged mojo (replace deprecated API calls, use the injected Session) and release","Waive with maven.plugin.validation.excludes if the mojo cannot be changed and the risk is accepted"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"mvn clean install -Dmaven.plugin.validation=verbose  # mojo-level findings need verbose, not summary","typeGuard":null,"tryCatchPattern":null,"preventionTips":["For in-house plugins, run their ITs under the newest Maven with verbose validation to catch mojo-level API misuse early","Prefer plugins whose mojos are actively maintained against current Maven APIs"],"tags":["maven","plugin-validation","mojo","build-report"],"backgroundTag":"plugin-validation-report","analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}