1.版本对应关系
2 .动手实践
在父工程的pom.xml文件中加上<packaging>pom</packaging>, 将该文件变为整个项目的配置文件。
只是声明统一版本而已,没有引入依赖,当子模块继承时,需要自己引入依赖,但可以不用写版本。并且,dapendencyManagement一般只出现在父工程里面。。指定了之后,子模块引入springcloudAlibb的组件时,也可以不用依赖
3.解析:
1)创建了父工程,
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2)创建子工程
<parent>
<groupId>com.cloud</groupId>
<artifactId>code-cloud</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
因为在父工程并指定了springboot、springcloudAlibaba等版本,子工程去继承父工程,所以在子模块中,不需要再指定版本了,但是需要引入依赖,因为父工程只是指定版本而已,没有引入依赖。
4.总结:
创建微服务聚合工程的两种方式:
1.第一种:
跟本文说的一样,在父工程中指定本版和统一管理jar包。
2.第二种:
创建一个公共模块common,去继承父工程,其他依赖都在common引入,而其他子模块只需要依赖common就可以了。