You can only import managed dependencies. This means you can only import other POMs into the dependencyManagement
section of your project's POM. i.e.
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>other.pom.group.id</groupId>
<artifactId>other-pom-artifact-id</artifactId>
<version>SNAPSHOT</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
...
What then happens is that all the dependencies defined in the dependencyManagement
section of the other-pom-artifact-id
are included in your POM's dependencyManagement
section. You can then reference these dependencies in the dependency
section of your POM (and all of its child POMs) without having to include a version
etc.
However if in your POM you simply define a normal dependency to other-pom-artifact-id
then all dependencies
from the dependency
section of the other-pom-artifact-id
are included transitively in your project - however the dependencies defined in the dependencyManagement
section of the other-pom-artifact-id
are not included at all.
So basically the two different mechanisms are used for importing/including the two different types of dependencies (managed dependencies and normal dependencies).
There is a good page on the maven website, which can explain this far better than I can, Dependency Management in Maven and it also contains specific information on importing dependencies.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…