Зачем Spring-boot-starter-parent и spring-boot-starter-web необходимы для приложения Spring Boot? - PullRequest
1 голос
/ 07 февраля 2020

Я слежу за видеоуроком по Spring Boot (с сайта javabrains.io). POM-файл для примера проекта содержит родительский блок с groupId как org.springframework.boot и artifactId как spring-boot-starter-parent.

Кроме того, он содержит блок зависимостей с groupId как org.springframework.boot и artifactId как spring-boot-starter-web.

В) Зачем нам нужны оба элемента (т.е. родитель и зависимость) в нашем 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>

1 Ответ

2 голосов
/ 07 февраля 2020

Если вы проверите файл spring-boot-starter-parent pom, вы увидите, что он предоставляет свойства по умолчанию и конфигурацию подключаемого модуля maven, тогда как spring-boot-starter-web предоставляет веб-зависимости пружинных зависимостей без какой-либо дополнительной настройки. Кроме того, оба стартера наследуются от spring-boot-dependencies, который определяет список зависимостей, поддерживаемых пружиной. Это позволяет вам опустить версию для любой из этих зависимостей в вашей конфигурации сборки. Вы можете узнать больше, прочитав официальную документацию .

Таким образом, чтобы подвести итог, spring-boot-starter-parent предоставляет

  • default maven plugin setup
  • default свойства maven
  • управление зависимостями

Принимая во внимание, что spring-boot-starter-web извлекает веб-зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...