Maven中<scope>import</scope> <type>pom</type>用法

目录

用法一

说明:当一个父pom中的dependencyManagement 标签中需要导入另一个pom中的dependencyManagement的时候,必须同时使用<scope>import</scope> 和 <type>pom</type>

例子:

 <dependencyManagement>
     <dependencies>
         <dependency>
             <!-- Import dependency management from Spring Boot -->
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-dependencies</artifactId>
             <version>2.0.1.BUILD-SNAPSHOT</version>
             <type>pom</type>
             <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

 

 这个时候,该pom中dependencyManagement就会包含导入的spring-boot-dependencies中的所有dependencyManagement

这是为了解决pom类型的父工程单继承的问题,通过导入,可以导入各种其他父工程的dependencyManagement

注意:dependencyManagement只在父工程(即pom类型的maven工程)中声明,在子工程中定义无需声明版本从而生效。如果在jar类型的maven工程中添加了dependencyManagement,是没有意义的。

 

用法二

说明:当需要把一些依赖定义到一个pom工程中,但是由于maven单继承机制,子工程又想通过依赖引入该pom工程中的所有依赖,只需要添加<type>pom</type>

例子:

<dependencies>
  <dependency>
      <groupId>org.sonatype.mavenbook</groupId> 
    <artifactId>persistence-deps</artifactId>
    <version>1.0</version>      <type>pom</type>   </dependency>
</dependencies>

 

这是为了解决子工程单继承的问题,通过<type>pom</type>可以依赖于其他的pom父工程,从而将pom工程中的依赖都传递过来

type 默认是jar,依赖jar工程时可以不写type标签,所以如果依赖于一个jar工程,而jar工程中包含大量的依赖,也会一起传递过来,这也就是maven依赖传递的原理。

 

 

posted @ 2022-01-19 14:48  迷走神经  阅读(7548)  评论(2编辑  收藏  举报