Maven BOM [物料清单] 依赖

Maven BOM [Bill Of Materials] Dependency

我不明白 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 依赖项中?

bom 对象的用途是什么?

Maven 父子关系对于在一个地方管理多个项目的依赖关系非常方便。但是,Maven 项目只能有一个(直接)父项目。因此引入了用于依赖管理的导入,以允许使用多个项目来管理你的依赖。通过导入,您可以像这样定义一个依赖项并管理多个依赖项 - 方便!虽然您可以导入任何项目,但 BOM 是一个专门用于此类导入的特殊项目。通常一个 BOM 项目除了 dependencyManagement 部分之外很少有定义,并且不会有任何无关的依赖项,以避免对您的主项目造成太大影响。

我需要使用哪个 bom 依赖项?

BOM 不是必需的,您也不需要使用。相反,您可以自己在 dependencyManagement 部分定义所有托管依赖项。这些可以包括 Spring、JBoss 和任何其他依赖项。然而,BOM 为您显着简化了这一过程。您可以根据需要添加任意数量的 BOM,因此请同时添加!但正如@Jesper 提到的,不要忘记使用正确的版本。当使用多个 BOM 时,如果它们都引用共同的依赖项,它们的顺序将很重要。

jar 文件是否下载到我的 Maven 依赖项中?

注意 BOM 是 <type>pom</type>,而不是默认的 jar。所以没有要下载的jar。 Maven 将下载并读取一个 pom.xml 文件。