Почему мой стартер Spring Boot не привносит свои зависимости в проект?

#java #spring #spring-boot #spring-boot-starter

Вопрос:

Я создал простой стартовый таймер с рестконтроллером внутри. Вот его пом:

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.0</version>
    <relativePath/>
</parent>

<groupId>ez</groupId>
<artifactId>time-starter-spring-boot-starter</artifactId>
<version>0.0.1</version>
<name>time-starter</name>

<properties>
    <java.version>11</java.version>
</properties>

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>
 

Я добавил ТаймСтартер в свой проект:

 <dependencies>
    <dependency>
        <groupId>ez</groupId>
        <artifactId>time-starter-spring-boot-starter</artifactId>
        <version>0.0.1</version>
        <scope>provided</scope>
    </dependency>

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

После этого я ожидаю, что в моем проекте появятся все необходимые зависимости (spring-boot-starter-web), а контроллер REST от starter будет готов к HTTP-запросам. Но нет, я должен добавить зависимости spring-boot-starter-web и spring-web, чтобы заставить мой стартер работать.

Комментарии:

1. Потому что вы сделали это optional , и ваш стартер добавлен, provided так что из-за этих вещей ничего не будет включено.

2. Звучит как ответ @M. Deinum

Ответ №1:

Как сказал М. Дейнум, причина заключалась в том, что я сделал свои зависимости в стартере «необязательными».