{"record":{"id":"17088f10efe645d3","repo":"apache/maven","slug":"plugin-validation-issues-were-detected-in-follo","errorCode":null,"errorMessage":"Plugin {} validation issues were detected in following plugin(s)","messagePattern":"Plugin (.+?) validation issues were detected in following plugin\\(s\\)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java","lineNumber":220,"sourceCode":"\n    private void reportSessionCollectedValidationIssues(MavenSession mavenSession) {\n        if (!logger.isWarnEnabled()) {\n            return; // nothing can be reported\n        }\n        ValidationReportLevel validationReportLevel = validationReportLevel(mavenSession.getRepositorySession());\n        if (validationReportLevel == ValidationReportLevel.NONE\n                || validationReportLevel == ValidationReportLevel.INLINE) {\n            return; // we were asked to not report anything OR reporting already happened inline\n        }\n        ConcurrentHashMap<String, PluginValidationIssues> issuesMap = pluginIssues(mavenSession.getRepositorySession());\n        EnumSet<IssueLocality> issueLocalitiesToReport = validationReportLevel == ValidationReportLevel.SUMMARY\n                        || validationReportLevel == ValidationReportLevel.VERBOSE\n                ? EnumSet.allOf(IssueLocality.class)\n                : EnumSet.of(IssueLocality.EXTERNAL);\n\n        if (hasAnythingToReport(issuesMap, issueLocalitiesToReport)) {\n            logger.warn(\"\");\n            logger.warn(\"Plugin {} validation issues were detected in following plugin(s)\", issueLocalitiesToReport);\n            logger.warn(\"\");\n\n            // Sorting the plugins\n            List<Map.Entry<String, PluginValidationIssues>> sortedEntries = new ArrayList<>(issuesMap.entrySet());\n            sortedEntries.sort(Map.Entry.comparingByKey(String.CASE_INSENSITIVE_ORDER));\n\n            for (Map.Entry<String, PluginValidationIssues> entry : sortedEntries) {\n                PluginValidationIssues issues = entry.getValue();\n                if (!hasAnythingToReport(issues, issueLocalitiesToReport)) {\n                    continue;\n                }\n                logger.warn(\" * {}\", entry.getKey());\n                if (validationReportLevel == ValidationReportLevel.VERBOSE) {\n                    if (!issues.pluginDeclarations.isEmpty()) {\n                        logger.warn(\"  Declared at location(s):\");\n                        for (String pluginDeclaration : issues.pluginDeclarations) {\n                            logger.warn(\"   * {}\", pluginDeclaration);\n                        }","sourceCodeStart":202,"sourceCodeEnd":238,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java#L202-L238","documentation":"End-of-session summary from DefaultPluginValidationManager: unless the level is NONE or INLINE (inline already reported everything), it checks the accumulated pluginIssues map and, if anything matches the locality filter (SUMMARY/VERBOSE report all localities, otherwise only EXTERNAL), logs 'Plugin <localities> validation issues were detected in following plugin(s)' followed by a sorted list of plugin GAVs (' * g:a:v') and their issues, ending with a pointer to the maven.plugin.validation property.","triggerScenarios":"Running with -Dmaven.plugin.validation=SUMMARY, BRIEF or VERBOSE while at least one plugin recorded validation issues (external locality suffices for BRIEF) — e.g. plugins with unexpected dependencies, non-provided Maven core deps, or Maven-3-only API usage.","commonSituations":"CI builds switched to SUMMARY/VERBOSE for an audit; external plugins (not maintained by the build owner) flagged with EXTERNAL issues that need upstream fixes or version upgrades.","solutions":["Upgrade the listed plugins to versions that fix the reported issues.","Report the issue against the plugin project (message says so) with the -Dmaven.plugin.validation=VERBOSE output attached.","Suppress known/unfixable plugins via -Dmaven.plugin.validation.excludes=<g>:<a> (comma-separated G:A keys).","Set -Dmaven.plugin.validation=NONE only as a last resort to mute everything."],"exampleFix":"# before: summary noise from third-party plugins\nmvn -Dmaven.plugin.validation=SUMMARY verify\n\n# after: exclude the unfixable plugin, keep the rest\nmvn -Dmaven.plugin.validation=SUMMARY \\\n    -Dmaven.plugin.validation.excludes=org.example:legacy-plugin verify","handlingStrategy":"fallback","validationCode":"# guard: parse the summary for plugins you own vs third-party\nmvn -Dmaven.plugin.validation=SUMMARY verify 2>&1 \\\n  | sed -n '/validation issues were detected/,/^$/p' > validation-summary.txt\n# fail only on plugins you maintain\ngrep -q 'com.mycompany:' validation-summary.txt && exit 1 || true","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Choose the level deliberately: SUMMARY for audits, BRIEF for external-only noise reduction.","Keep a maven.plugin.validation.excludes list with comments referencing upstream issues.","Re-test after every plugin upgrade and prune the excludes list."],"tags":["maven","plugin-validation","build-summary","logging","plugin-upgrade"],"backgroundTag":"maven-plugin-validation-warnings","analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}