Должен ли стабильный проект по-прежнему использовать spring-boot-starter- *? - PullRequest
0 голосов
/ 30 апреля 2020

Существует много артефактов Maven с именем spring-boot-starter-*. Как видно из названий, они очень полезны для запуска проекта приложения с Spring Boot.

Однако после того, как проект приложения станет стабильным, он должен продолжать использовать эти spring-boot-starter-*?

Меня беспокоит то, что при этом используется механизм "транзитивных зависимостей" Maven, и, похоже, он нарушает предложение, содержащееся в Документация Maven :

Хотя это и транзитивно зависимости могут неявно включать желаемые зависимости. Рекомендуется явно указывать зависимости, которые вы непосредственно используете, в своем исходном коде.

Например, предположим, что проект приложения напрямую использует аннотацию Spring @EventListener. Аннотация находится в артефакте Maven spring-context, а spring-context включена в spring-boot-starter. Должен ли проект приложения напрямую указывать зависимость от spring-context после того, как он станет стабильным?

1 Ответ

1 голос
/ 30 апреля 2020

Стартовые артефакты Spring Boot - это просто сокращение, включающее несколько артефактов Spring Boot одновременно. У моей компании есть услуги по производству, которые используют артефакты стартера. Конечно, вы могли бы заменить каждый стартер списком содержащихся в нем артефактов, но я думаю, что предложение Maven больше касается не связанных транзитивных зависимостей, например, если ваше приложение унаследовало Guava от некоторой библиотеки JSON в качестве транзитивной зависимости.

Когда все переходные зависимости происходят из одного источника и предназначены для совместной работы, я не думаю, что это проблема. По крайней мере, я так не вижу.

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