Skip to content
Latchkey

Maven BOM "import" Scope Not Resolved - Fix dependencyManagement Import

A BOM imported with <scope>import</scope> could not be resolved, or its managed versions are not being applied. A BOM only works as <type>pom</type> + <scope>import</scope> inside <dependencyManagement>; anywhere else it is silently ignored or fails to resolve.

What this error means

Either Maven reports Non-resolvable import POM for the BOM coordinates, or dependencies that should inherit a version from the BOM still demand an explicit <version> ("dependencies.dependency.version is missing").

mvn output
[ERROR] Some problems were encountered while processing the POMs:
[ERROR] Non-resolvable import POM: Could not find artifact
org.springframework.boot:spring-boot-dependencies:pom:3.3.2 in central @ line 22
# or, when the BOM is misplaced:
[ERROR] 'dependencies.dependency.version' for org.springframework.boot:spring-boot-starter:jar is missing

Common causes

BOM artifact missing or wrong coordinates

The BOM version was never published, or its repository is not declared, so the import POM cannot be fetched and resolution fails.

Import declared in the wrong place or without type pom

An import scope only has meaning inside <dependencyManagement> with <type>pom</type>. Put it under <dependencies> directly, or omit <type>pom</type>, and the managed versions never apply.

How to fix it

Import the BOM correctly in dependencyManagement

Use type pom and import scope inside dependencyManagement so its versions flow to your dependencies.

pom.xml
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>3.3.2</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Then declare dependencies without a version

Once the BOM is imported, your dependencies inherit the managed version automatically.

pom.xml
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- no <version> - supplied by the imported BOM -->
  </dependency>
</dependencies>

How to prevent it

  • Always import BOMs with <type>pom</type> + <scope>import</scope> inside dependencyManagement.
  • Declare the repository that hosts the BOM if it is not on Central.
  • Drop explicit versions on dependencies the BOM manages so the BOM stays the single source.

Frequently asked questions

What causes ""Non-resolvable import POM""?
The BOM version was never published, or its repository is not declared, so the import POM cannot be fetched and resolution fails.
How do I fix "Non-resolvable import POM"?
Use type pom and import scope inside dependencyManagement so its versions flow to your dependencies.

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card