SpringBoot2.2.13子模块dependency中依赖的版本号

SpringBoot2.2.13子模块dependency中依赖的版本号

​ 在上一节中我们创建一个子模块,在编写Maven的配置文件pom.xml时,并没有指定 <version> , 项目也可以正常运行。pom.xml文件如下:

<?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.0</modelVersion>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<!--将这里的版本号,修改成自己刚刚编译的版本号,方便调试 -->
		<version>2.2.13.RELEASE.aibei</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<groupId>com.ai_bei</groupId>
	<artifactId>springboot-ai-bei-tests</artifactId>
	<version>1.0-SNAPSHOT</version>

	<properties>
		<maven.compiler.source>17</maven.compiler.source>
		<maven.compiler.target>17</maven.compiler.target>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>

</project>

​ 在上面的pom中有两个核心的依赖:spring-boot-starter-parentspring-boot-starter-web

  • spring-boot-starter-parent 作为 springboot-ai-bei-tests 的父项目依赖,同时也是Springboot项目的统一父项目依赖管理。

    • 在这里插入图片描述

      通过查看spring-boot-starter-parent项目的pom.xml文件如下:

    	.......
    	<modelVersion>4.0.0</modelVersion>
    	<!--依赖父项目 spring-boot-dependencies -->
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-dependencies</artifactId>
    		<version>${revision}</version>
    		<relativePath>../../spring-boot-dependencies</relativePath>
    	</parent>
    	<artifactId>spring-boot-starter-parent</artifactId>
    	<packaging>pom</packaging>
    	<name>Spring Boot Starter Parent</name>
    	<description>Parent pom providing dependency and plugin management for applications
    		built with Maven</description>
    	<properties>
    		<!--设置了一个路径参数,后面会用到-->
    		<main.basedir>${basedir}/../../..</main.basedir>
    		<!--定义了工程的Java版本是1.8-->
    		<java.version>1.8</java.version>
    		<!--定义了与 Spring ${} 占位符不冲突的分隔符-->
    		<resource.delimiter>@</resource.delimiter> <!-- delimiter that doesn't clash with Spring ${} placeholders -->
    		<!--定义了工程编译源文件的编码格式是UTF-8-->
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    		<!--定义了工程编译后的文件的编码格式是UTF-8-->
    		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    		<!--定义了工程的Java版本是1.8-->
    		<maven.compiler.source>${java.version}</maven.compiler.source>
    		<!--定义了工程的Java版本是1.8-->
    		<maven.compiler.target>${java.version}</maven.compiler.target>
    	</properties>
    	<build>
    		<!-- Turn on filtering by default for application properties -->
    		<!--默认情况下打开应用程序属性的过滤-->
    		<resources>
    			<resource>
    				<directory>${basedir}/src/main/resources</directory>
    				<filtering>true</filtering>
    				<includes>
    					<include>**/application*.yml</include>
    					<include>**/application*.yaml</include>
    					<include>**/application*.properties</include>
    				</includes>
    			</resource>
    			<resource>
    				<directory>${basedir}/src/main/resources</directory>
    				<excludes>
    					<exclude>**/application*.yml</exclude>
    					<exclude>**/application*.yaml</exclude>
    					<exclude>**/application*.properties</exclude>
    				</excludes>
    			</resource>
    		</resources>
    		<!--插件申明,提供了插件的默认值-->
    		<pluginManagement>
    	.......
    

    通过查看 spring-boot-starter-parent 会发现它又依赖了 spring-boot-dependencies,我们进入spring-boot-dependencies项目中,

    • 在这里插入图片描述

      通过查看 spring-boot-dependencies 项目中的pom文件,可以发现在spring-boot-dependencies 项目中提前进行了部分maven的依赖版本号的配置:

    .......
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-build</artifactId>
    		<version>${revision}</version>
    		<relativePath>../..</relativePath>
    	</parent>
    	<artifactId>spring-boot-dependencies</artifactId>
    	<packaging>pom</packaging>
    	<name>Spring Boot Dependencies</name>
    	<description>Spring Boot Dependencies</description>
    	<url>https://projects.spring.io/spring-boot/#</url>
    	<licenses>
    		<license>
    			<name>Apache License, Version 2.0</name>
    			<url>https://www.apache.org/licenses/LICENSE-2.0</url>
    		</license>
    	</licenses>
    	<scm>
    		<url>https://github.com/spring-projects/spring-boot</url>
    	</scm>
    	<developers>
    		<developer>
    			<name>Pivotal</name>
    			<email>info@pivotal.io</email>
    			<organization>Pivotal Software, Inc.</organization>
    			<organizationUrl>https://www.spring.io</organizationUrl>
    		</developer>
    	</developers>
    	<!--提前进行了部分maven的依赖版本号的配置-->
    	<properties>
    		<main.basedir>${basedir}/../..</main.basedir>
    		<!-- Dependency versions -->
    		<activemq.version>5.15.14</activemq.version>
    		<antlr2.version>2.7.7</antlr2.version>
    		<appengine-sdk.version>1.9.84</appengine-sdk.version>
    .......
        <!--提前进行了部分maven的依赖版本号依赖-->
    	<dependencyManagement>
            <dependency>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot</artifactId>
    				<version>${revision}</version>
    		</dependency>
    .......
    

    看到这里就明白了,为什么项目springboot-ai-bei-tests 在依赖 spring-boot-starter-web的时候,可以不用指明 <version>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深漂的小小小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值