spring - 为什么Spring Boot应用pom需要spring-boot-starter-parent和spring-boot-starter-web?

标签 spring spring-boot maven

我正在观看有关 Spring Boot 的视频教程(来自 javabrains.io)。示例项目的 pom 文件包含一个父 block ,其 groupIdorg.springframework.bootartifactIdspring-boot-起始父级

此外,它还包含一个依赖 block ,groupIdorg.springframework.bootartifactIdspring-boot-starter-网页

问)为什么我们的 pom.xml 中需要两个元素(即父元素和依赖项)?

我想既然项目pom继承自spring-boot-starter-parent,那么所有的依赖也会自动继承。


示例工程pom.xml文件如下:

<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>
    <groupId>io.javabrains.springbootquickstart</groupId>
    <artifactId>course-api</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Java Brains Course API</name>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
    </parent>

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

    <properties>
        <java.version>1.8</java.version>
    </properties>
</project>

最佳答案

如果您检查 spring-boot-starter-parent pom 文件,您会看到它提供了默认属性和 maven 插件配置,而 spring-boot-starter-web 提供web相关的spring依赖,无需额外配置。此外,两个启动器都继承自 spring-boot-dependencies,它定义了 spring 支持的依赖项列表。这允许您在构建配置中省略任何这些依赖项的版本。您可以通过阅读了解更多信息 the official documentation .

总而言之,spring-boot-starter-parent 提供

  • 默认的 maven 插件设置
  • 默认的 maven 属性
  • 依赖管理

spring-boot-starter-web 引入了与网络相关的依赖项。

关于spring - 为什么Spring Boot应用pom需要spring-boot-starter-parent和spring-boot-starter-web?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60104282/

相关文章:

java - 每次修改代码时都必须 mvn clean install

java - 推送到关键时无法与端口 8080 建立 TCP 连接

spring - 如何在 Spring 中使用注释 Autowiring 第 3 方类?

spring-boot - Spring Boot x509 测试 - pcf

java - 无法使用 Spring Boot 将日期时间保存到 MongoDB

xml - 如何设置spring上下文:component-scan to scan "src/main/java" instead of "src/test.java" in unit test env

java - 使用 Maven 3.5 运行 jacoco 检查目标

java - 尝试使用 ssh 私钥文件设置 Spring Boot 云配置服务器并获取 : ucom. jcraft.jsch.JSchException:USERAUTH 失败

spring - 在执行时设置log4j文件路径参数

java - mongodb,保存后截断日期时间中的毫秒