apache/maven · warning
- {}
Error message
- {} What it means
A single mojo-level issue line (' - <issue text>') in the VERBOSE plugin validation report, nested under its ' * Mojo ...' parent. This is the most granular finding Maven emits: the exact problem detected in one mojo class of one plugin version, e.g. 'uses deprecated API' details.
Source
Thrown at impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java:259
for (IssueLocality issueLocality : issueLocalitiesToReport) {
Set<String> pluginIssues = issues.pluginIssues.get(issueLocality);
if (pluginIssues != null && !pluginIssues.isEmpty()) {
logger.warn(" Plugin {} issue(s):", issueLocality);
for (String pluginIssue : pluginIssues) {
logger.warn(" * {}", pluginIssue);
}
}
}
}
if (!issues.mojoIssues.isEmpty()) {
for (IssueLocality issueLocality : issueLocalitiesToReport) {
Map<String, LinkedHashSet<String>> mojoIssues = issues.mojoIssues.get(issueLocality);
if (mojoIssues != null && !mojoIssues.isEmpty()) {
logger.warn(" Mojo {} issue(s):", issueLocality);
for (String mojoInfo : mojoIssues.keySet()) {
logger.warn(" * Mojo {}", mojoInfo);
for (String mojoIssue : mojoIssues.get(mojoInfo)) {
logger.warn(" - {}", mojoIssue);
}
}
}
}
}
logger.warn("");
}
}
logger.warn("");
if (validationReportLevel == ValidationReportLevel.VERBOSE) {
logger.warn(
"Fix reported issues by adjusting plugin configuration or by upgrading above listed plugins. If no upgrade available, please notify plugin maintainers about reported issues.");
}
logger.warn(
"For more or less details, use 'maven.plugin.validation' property with one of the values (case insensitive): {}",
Arrays.toString(ValidationReportLevel.values()));
logger.warn("");
}View on GitHub (pinned to e4093d4e12)
Solutions
- Use the message as the bug report body: upgrade the plugin first, since these findings are almost always fixed upstream
- If it names a deprecated API you also use in custom mojos, refactor that call and release
- Suppress known noise via maven.plugin.validation.excludes for the plugin GAV
Defensive patterns
Strategy: validation
Validate before calling
mvn clean install -Dmaven.plugin.validation=verbose 2>&1 | grep ' - ' # extract the granular issue lines
Prevention
- For custom mojos, avoid removed/deprecated Maven API and use the injected Session instead of legacy lookups
- Rebuild and release custom plugins after each Maven baseline upgrade to keep findings at zero
When it happens
Trigger: Verbose validation report iterating issues.mojoIssues values; each string in the LinkedHashSet for a mojo prints one such line, preserving registration order.
Common situations: Deprecated Mojo API usage details (which method/class is deprecated), missing @Component field correctness, or classloader assumptions broken by newer Maven - usually from mojos not rebuilt for the current Maven baseline.
Related errors
AI-assisted analysis of apache/maven@e4093d4e12 (2026-08-21).
Data as JSON: /api/errors/402594f834991029.
Report an issue: GitHub.