Maven BOM [Билль Материал] Зависимость

Я не понимаю, какова цель объекта bom? и я работаю над версией Spring 3.2.8 и с сервером JBoss, поэтому какую зависимость bom мне нужно использовать? Когда я упоминаю следующую зависимость в pom.xml:

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>4.0.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
</dependency>

Загружается ли файл jar в мои зависимости Maven?

Ответ 1

Какова цель объекта bom?

Отношения между родителями и дочерними элементами Maven очень удобны для управления зависимостями нескольких проектов в одном месте. Тем не менее, проекты Maven могут иметь только одного (прямого) родителя. Таким образом, импорт был введен для управления зависимостями, чтобы разрешить использование нескольких проектов для управления вашими зависимостями. При импорте вы можете определить одну зависимость, подобную этой, и управлять несколькими зависимостями - удобно! Хотя вы можете импортировать любой проект, спецификация - это особый проект, предназначенный для использования в качестве импорта. Обычно проект BOM будет очень мало определен, кроме раздела dependencyManagement, и не будет иметь каких-либо несвязанных зависимостей, чтобы не слишком сильно влиять на ваш основной проект.

Какую зависимость bom мне нужно использовать?

Спецификация не является обязательным требованием, вам также не нужно использовать ее. Вместо этого вы можете самостоятельно определить все управляемые зависимости в разделе dependencyManagement. К ним могут относиться Spring, JBoss и любые другие зависимости. Однако спецификация упрощает это для вас. Вы можете добавить столько спецификаций, сколько хотите, так что добавьте оба! Но, как упоминает @Jesper, не забудьте использовать правильные версии. При использовании нескольких спецификаций их порядок будет иметь значение, если оба они ссылаются на общую зависимость.

Загружается ли файл jar в мои зависимости Maven?

Примечание. Спецификация <type>pom</type>, а не по умолчанию jar. Таким образом, нет бана для загрузки. Один файл pom.xml будет загружен и прочитан Maven.