apache/maven · warning
* Mojo {}
Error message
* Mojo {} What it means
A mojo identification line (' * Mojo <info>') in the VERBOSE validation report, printed for each mojo of the plugin that recorded mojo-level issues. The info string combines the mojo goal with its implementing class (mojoInfo(mojoDescriptor, mojoClass)), so you can pinpoint the exact goal and source class; the individual issue texts follow as ' - ...' lines.
Source
Thrown at impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java:257
}
if (!issues.pluginIssues.isEmpty()) {
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()));View on GitHub (pinned to e4093d4e12)
Solutions
- Note the goal/class on this line, then read the ' - ' issues directly below it
- Upgrade the plugin, or stop invoking the specific goal if the rest of the plugin is clean
- File an upstream issue quoting the mojo class and issue lines so maintainers can fix that mojo
Defensive patterns
Strategy: validation
Validate before calling
mvn groupId:artifactId:help:describe -Dgoal=THE-GOAL -Ddetail # confirm which goal/class you depend on
Prevention
- Record which goals of third-party plugins your build actually uses; drop unused goals so their findings become irrelevant
- When filing upstream, quote the mojo class from this line for faster triage
When it happens
Trigger: Verbose validation report where issues.mojoIssues for a locality maps the mojo info key to a non-empty issue set; each key of that LinkedHashSet-preserving map prints one such line.
Common situations: Determining which goal (e.g. myplugin:repackage vs myplugin:help) of a multi-mojo plugin triggers the deprecated-API warnings before filing an upstream issue.
Related errors
AI-assisted analysis of apache/maven@e4093d4e12 (2026-08-21).
Data as JSON: /api/errors/a3ec61a7c13aca56.
Report an issue: GitHub.