微服务架构中创建的工程基本都是父子工程,这样我们在子工程中就可以直接引用父工程预设的Maven依赖了。但是,Maven的继承和Java的继承一样,是无法实现多重继承的,也就是说一个pom文件中只能有一个<parent>标签。
这就造成一个问题,就是当父modle中需要在<dependencyManagement>中预设大量依赖的时候,造成pom文件过长,十分不清晰。所以要将dependency分类,可以把每一类建立单独的pom文件,由于无法继续继承了,所以需要在使用到这些依赖的子model中,使用import scope导入依赖
<!--在父model中严禁直接使用<dependencies>预定义依赖,坏处是子model会自动继承<dependencies>中所有预定义依赖
应使用dependencyManagement进行包裹,因为dependencyManagement是预定义依赖不会直接引入,而是子model需要时
按需导入,-->
<dependencyManagement>
<dependencies>
<!-- springCloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
注意:scope=import只能用在dependencyManagement里面,且仅用于type=pom的dependency