#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:
Как сказал М. Дейнум, причина заключалась в том, что я сделал свои зависимости в стартере «необязательными».