apache/maven · warning

{}

Error message

 {}

What it means

DefaultPluginValidationManager.mayReportInline() prints one line per detected plugin validation issue with locality INTERNAL (issues inside the plugin itself, such as dependencies expected in provided scope or Maven-3-only API usage) right next to the mojo invocation, as a single ' * <issue>' warn line. It only fires when the effective report level is INLINE or BRIEF (the default is INLINE).

Source

Thrown at impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java:154

    private String pluginKey(String groupId, String artifactId, String version) {
        return groupId + ":" + artifactId + ":" + version;
    }

    private String pluginKey(MojoDescriptor mojoDescriptor) {
        PluginDescriptor pd = mojoDescriptor.getPluginDescriptor();
        return pluginKey(pd.getGroupId(), pd.getArtifactId(), pd.getVersion());
    }

    private String pluginKey(Artifact pluginArtifact) {
        return pluginKey(pluginArtifact.getGroupId(), pluginArtifact.getArtifactId(), pluginArtifact.getVersion());
    }

    private void mayReportInline(RepositorySystemSession session, IssueLocality locality, String issue) {
        if (locality == IssueLocality.INTERNAL) {
            ValidationReportLevel validationReportLevel = validationReportLevel(session);
            if (INLINE_VALIDATION_LEVEL.contains(validationReportLevel)) {
                logger.warn(" {}", issue);
            }
        }
    }

    @Override
    public void reportPluginValidationIssue(
            IssueLocality locality, RepositorySystemSession session, Artifact pluginArtifact, String issue) {
        String pluginKey = pluginKey(pluginArtifact);
        if (validationPluginExcludes(session).contains(pluginKey)) {
            return;
        }
        PluginValidationIssues pluginIssues =
                pluginIssues(session).computeIfAbsent(pluginKey, k -> new PluginValidationIssues());
        pluginIssues.reportPluginIssue(locality, null, issue);
        mayReportInline(session, locality, issue);
    }

    @Override

View on GitHub (pinned to e4093d4e12)

Solutions

  1. Fix the flagged plugin: correct dependency scopes (Maven core deps to provided), remove isolated/duplicate dependencies, stop using deprecated APIs.
  2. Upgrade the listed plugin — newer releases usually fix reported issues.
  3. If the issue is not actionable for you, silence it per-plugin with -Dmaven.plugin.validation.excludes=<groupId>:<artifactId> (G:A keys), or set -Dmaven.plugin.validation=NONE to mute all reporting.

Example fix

# before: internal issues reported inline at default INLINE level
mvn package   # ' * [WARNING] ... issue text'

# after: fix the plugin (scope -> provided) or exclude it
mvn -Dmaven.plugin.validation.excludes=com.example:bad-plugin package
Defensive patterns

Strategy: fallback

Validate before calling

# guard: if you cannot fix the plugin yet, verify the exclude key is set correctly
# keys are G:A pairs, comma separated
mvn -Dmaven.plugin.validation.excludes=com.example:bad-plugin package 2>&1 \
  | grep -c ' \* ' # inline issue lines; expect 0 for excluded plugin

Prevention

When it happens

Trigger: Building with default or explicit -Dmaven.plugin.validation=INLINE|BRIEF while a plugin in the plan triggers an internal validation rule — e.g. a plugin packaging Maven core artifacts as compile-scope dependencies, or using deprecated/undocumented Maven APIs.

Common situations: After upgrading Maven (validators got stricter), warnings appear for older third-party plugins; maintainers of in-house plugins seeing their own dependency-scope mistakes flagged at each execution.

Related errors


AI-assisted analysis of apache/maven@e4093d4e12 (2026-08-21). Data as JSON: /api/errors/08d4be3ce41a607c. Report an issue: GitHub.