apache/maven · warning
Plugin {} validation issues were detected in following plugi
Error message
Plugin {} validation issues were detected in following plugin(s) What it means
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.
Source
Thrown at impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java:220
private void reportSessionCollectedValidationIssues(MavenSession mavenSession) {
if (!logger.isWarnEnabled()) {
return; // nothing can be reported
}
ValidationReportLevel validationReportLevel = validationReportLevel(mavenSession.getRepositorySession());
if (validationReportLevel == ValidationReportLevel.NONE
|| validationReportLevel == ValidationReportLevel.INLINE) {
return; // we were asked to not report anything OR reporting already happened inline
}
ConcurrentHashMap<String, PluginValidationIssues> issuesMap = pluginIssues(mavenSession.getRepositorySession());
EnumSet<IssueLocality> issueLocalitiesToReport = validationReportLevel == ValidationReportLevel.SUMMARY
|| validationReportLevel == ValidationReportLevel.VERBOSE
? EnumSet.allOf(IssueLocality.class)
: EnumSet.of(IssueLocality.EXTERNAL);
if (hasAnythingToReport(issuesMap, issueLocalitiesToReport)) {
logger.warn("");
logger.warn("Plugin {} validation issues were detected in following plugin(s)", issueLocalitiesToReport);
logger.warn("");
// Sorting the plugins
List<Map.Entry<String, PluginValidationIssues>> sortedEntries = new ArrayList<>(issuesMap.entrySet());
sortedEntries.sort(Map.Entry.comparingByKey(String.CASE_INSENSITIVE_ORDER));
for (Map.Entry<String, PluginValidationIssues> entry : sortedEntries) {
PluginValidationIssues issues = entry.getValue();
if (!hasAnythingToReport(issues, issueLocalitiesToReport)) {
continue;
}
logger.warn(" * {}", entry.getKey());
if (validationReportLevel == ValidationReportLevel.VERBOSE) {
if (!issues.pluginDeclarations.isEmpty()) {
logger.warn(" Declared at location(s):");
for (String pluginDeclaration : issues.pluginDeclarations) {
logger.warn(" * {}", pluginDeclaration);
}View on GitHub (pinned to e4093d4e12)
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.
Example fix
# before: summary noise from third-party plugins
mvn -Dmaven.plugin.validation=SUMMARY verify
# after: exclude the unfixable plugin, keep the rest
mvn -Dmaven.plugin.validation=SUMMARY \
-Dmaven.plugin.validation.excludes=org.example:legacy-plugin verify Defensive patterns
Strategy: fallback
Validate before calling
# guard: parse the summary for plugins you own vs third-party mvn -Dmaven.plugin.validation=SUMMARY verify 2>&1 \ | sed -n '/validation issues were detected/,/^$/p' > validation-summary.txt # fail only on plugins you maintain grep -q 'com.mycompany:' validation-summary.txt && exit 1 || true
Prevention
- 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.
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- {}
- The version cannot be empty.
- {} is not a valid log severity threshold. Valid severities a
- Invalid value specified for property {}: '{}'. Supported val
- * {}
AI-assisted analysis of apache/maven@e4093d4e12 (2026-08-21).
Data as JSON: /api/errors/17088f10efe645d3.
Report an issue: GitHub.