Error Knowledge Base Maven POM_MISSING

The POM for <artifact> is missing, no dependency information available

Maven located a JAR coordinate, but could not download the corresponding POM, so it cannot determine transitive dependencies or metadata for that artifact.

Fix it fast

Most likely: Maven found or requested the JAR coordinate, but the matching POM is missing or inaccessible, so Maven cannot resolve transitive dependency metadata.

1. Confirm this is your error
[WARNING] The POM for com.example:missing:jar:1.0.0 is missing, no dependency information available
[ERROR] The POM for com.example:missing:jar:1.0.0 is missing, no dependency information available
2. Check the cause
mvn -e -DskipTests package
mvn -q -Dartifact=groupId:artifactId:pom:version dependency:get
mvn -q help:effective-settings
find ~/.m2/repository -name "*.lastUpdated" -path "*<artifactId>*" -print
3. Apply the safe fix
# After confirming the POM exists in the intended repository, force Maven to refresh metadata.
mvn -U -DskipTests package

# If this is your artifact, republish it with its POM instead of only uploading the JAR.

# If a cached miss is blocking you, clear only this artifact/version's cached failure files.
4. Verify it works
mvn -DskipTests package
mvn -q -DskipTests dependency:tree
Don't use unsafe shortcuts
  • Do not ignore this warning for libraries with transitive dependencies, Maven may build an incomplete graph.
  • Do not upload only a JAR for a Maven dependency that other projects consume.
  • Do not change the dependency version until you confirm whether the POM exists in the intended repository.

What This Error Means

Read this as a precise clue about which part of the workflow broke first. Once you know the failing layer, the fix path gets much shorter.

How to Fix It

The fastest fixes here come from checking the immediate failing layer before you change anything unrelated. Make one correction at a time and re-test from the same environment.

Confirm the artifact coordinates in your pom.xml are correct (exact groupId/artifactId/version).

If this is a private artifact, confirm it was published with a POM and that your repository manager contains both the POM and JAR.

If your build uses a mirror, confirm it proxies the repository that contains the POM (and isn't blocking metadata).

Delete cached failures under ~/.m2/repository/<groupId path>/<artifactId>/<version>/ (including *.lastUpdated) and retry.

Re-run the build after the POM is available and accessible.

Why It Happens

Usually this comes down to the artifact was published incorrectly (JAR uploaded without its POM), the coordinates are wrong (wrong groupId/artifactId/version), so Maven is requesting a POM that doesn't exist, a mirror/proxy repository is serving incomplete metadata or blocking the POM path, or a cached failed download (*.lastUpdated) is preventing Maven from retrying immediately.

Verify the Fix

Re-run mvn -DskipTests package and confirm the POM-missing message no longer appears, and run mvn -q -DskipTests dependency:tree and confirm transitive dependencies resolve for that artifact.

Manual POM availability checks

Copy the failing coordinates and attempt to fetch the POM directly:mvn -q -Dartifact=groupId:artifactId:pom:version dependency:get

Check whether the artifact exists in the expected repository (Central or internal repository manager) with the exact coordinates and version.

Force a metadata refresh once:mvn -U -DskipTests package

Why the POM matters for dependencies

Maven uses an artifact's POM to discover its dependencies, dependencyManagement, relocations, and other metadata. If the POM is missing or cannot be downloaded, Maven can sometimes download the JAR but cannot correctly resolve transitive dependencies.

Prevent It From Coming Back

To prevent this, publish artifacts through a repository manager and enforce complete metadata (POM + checksums), prefer releasing through Maven deploy workflows so POMs are generated and uploaded consistently, and use CI checks that verify repository contents include both POM and binary artifacts.

Docs and source code

github.com/apache/maven/blob/maven-3.9.6/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java

When Maven cannot fetch required POM metadata, the underlying resolver message (e.g. "The POM for ... is missing") bubbles up via e.getMessage() in Maven's dependency resolution exception. - GitHub

String msg = "Could not resolve dependencies for project " + project.getId() + ": " + e.getMessage();
DependencyResolutionException dex = new DependencyResolutionException(msg, e);
dex.setResult(e.getResult());
throw dex;

Need help or found a mistake? Contact RepoFlow support for questions.

Join our mailing list