spring-boot-starter-parent的作用
我们SpringBoot项目pom文件中都会引入spring-boot-starter-parent这样一个依赖,如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0modelVersion> <groupId>com.ruoyigroupId> <artifactId>ruoyiartifactId> <version>2.2.0version> <packaging>jarpackaging> <name>ruoyiname> <url>http://www.ruoyi.vipurl> <description>若依管理系统description> <parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.1.1.RELEASEversion> <relativePath /> parent> project>
那spring-boot-starter-parent的作用是什么呢?
其实从字面意思上看是spring-boot-starter的一个parent,那就是引入和定义starter相关的东西。
具体来看可以分为以下两点:
一、统一定义配置:
spring-boot-starter-parent代码如下,定义编码、java版本等:
<properties> <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding> <java.version>1.8java.version> <resource.delimiter>@resource.delimiter> <maven.compiler.source>${java.version}maven.compiler.source> <project.build.sourceEncoding>UTF-8project.build.sourceEncoding> <maven.compiler.target>${java.version}maven.compiler.target> properties>
二、统一依赖及版本:
spring-boot-starter-parent代码如下:
<parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-dependenciesartifactId> <version>2.1.1.RELEASEversion> <relativePath>../../spring-boot-dependenciesrelativePath> parent>
spring-boot-dependencies代码如下:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-bootartifactId> <version>2.1.1.RELEASEversion> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-data-redisartifactId> <version>2.1.1.RELEASEversion> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-quartzartifactId> <version>2.1.1.RELEASEversion> dependency> dependencyManagement>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
<dependency>
<groupId>org.quartz-schedulergroupId>
<artifactId>quartzartifactId>
dependency>
为什么不必指定版本,参考。