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

  1. Note the goal/class on this line, then read the ' - ' issues directly below it
  2. Upgrade the plugin, or stop invoking the specific goal if the rest of the plugin is clean
  3. 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

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.