Внешние зависимости Eclipse для Spring Boot — почему не отображаются все зависимости для загрузки Spring для данного проекта?

Я пытаюсь выяснить, использует ли какой-либо из наших проектов с весенней загрузкой spring-cloud, в котором есть недавно обнаруженный эксплойт.

Я знаю, что spring-boot поставляется с spring-cloud как зависимость, но когда я проверяю проект в Eclipse на наличие внешних зависимостей, ни один из них не показывает spring-cloud как зависимость. Это хорошо, но зачем?

Я также видел, что во многих проектах используется компонент spring-boot, spring-boot-autoconfigure, у которого в качестве зависимости есть spring-cloud-spring-service-connector. Это также не отображается как внешняя зависимость, но опять же, почему? Кажется, если он указан в maven компонента как зависимость, он должен автоматически стать внешней зависимостью.

Spring Boot не имеет Spring Cloud в качестве зависимости... Spring Cloud имеет Spring Boot в качестве зависимости. Так что ваше понимание ошибочно.

M. Deinum 17.05.2022 14:04

Правда, меня перевернули. Можете ли вы объяснить второй пункт?

Jack BeNimble 17.05.2022 15:32

Что вы хотите объяснить? Если Spring Boot не использует Spring Cloud, вы, очевидно, не увидите этих зависимостей... Если проект не использует зависимость, почему она должна отображаться?

M. Deinum 17.05.2022 15:38

Облако Spring включено в загрузку Spring. Spring-boot-autoconfigure, часть Spring Boot, имеет в качестве зависимости spring-cloud-spring-service-connector. Почему он не указан как внешняя зависимость проекта, использующего spring-boot-auto-configure?

Jack BeNimble 17.05.2022 15:52

Поскольку Spring Cloud не зависит от spring-boot-autoconfigure. Spring Cloud зависит от Spring Boot нет наоборот.

M. Deinum 17.05.2022 15:56

.m2\repository\org\springframework\boot\spring-boot-autoconf‌igure\2.1.4.RELEASE>‌type spring-boot-autoconfigure-2.1.4.RELEASE.pom | findstr spring.cloud <artifactId>spring-cloud-spring-service-connector</artifactI‌​d>

Jack BeNimble 17.05.2022 16:04

Вы можете проверить все зависимости для [spring-boot-autoconfigure ](github.com/spring-projects/spring-boot/blob/main/…) и увидеть, что там нет ничего, связанного с Spring Cloud, только обычные проекты портфолио Spring.

M. Deinum 17.05.2022 16:04

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-spring-service-connector</artifactI‌​d> <version>2.0.5.RELEASE</version> <scope>compile< /scope> <exclusions> <exclusion> <artifactId>log4j</artifactId> <groupId>log4j</groupId> </exclusion> </exclusions> <необязательный>true</необязательный> </dependency>

Jack BeNimble 17.05.2022 16:05

Версия, на которую вы указываете, является старой, и если вы проверите, что это зависимость необязательный, как и большинство из них. И необязательные зависимости никогда не включаются.

M. Deinum 17.05.2022 16:05

Это находится в файле .m2\repository\org\springframework\boot\spring-boot-autoconf‌​igure\2.1.4.RELEASE>‌​type spring-boot-autoconfigure-2.1.4.RELEASE.pom

Jack BeNimble 17.05.2022 16:05

Возможно, вы захотите включить интересующую вас версию Spring Boot (как вы видите, она сильно различается между версиями)!.

M. Deinum 17.05.2022 16:07

Ах, я не видел необязательный. Таким образом, он может использоваться проектом, но, поскольку он необязателен, он не отмечен? Я думаю, я не знаю, что означает необязательный.

Jack BeNimble 17.05.2022 16:07

Да, он старый, но уязвимость говорит, что старые версии уязвимы для проклятия.

Jack BeNimble 17.05.2022 16:08

Спасибо, ваши комментарии были очень полезны.

Jack BeNimble 17.05.2022 16:22
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
14
15
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

spring-boot-autoconfigure в основном имеет optional зависимости, и они никогда транзитивно и автоматически не включаются в проекты, использующие spring-boot-autoconfigure. Как работает необязательные зависимости, объясняется в документации Maven.

Если вы хотите использовать их, вам также необходимо явно указать их в своем проекте, поэтому вы не увидите их, если они не упомянуты явно.

Другие вопросы по теме