当前位置: 首页 > 面试题库 >

Maven BOM [Bill Of Materials] Dependency

贝阳泽
2023-03-14
问题内容

我不明白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项目在dependencyManagementsection 之外几乎没有定义,并且不会有任何不相关的依赖关系,以避免对你的主项目造成太大影响。

我需要使用哪种Bom依赖项?
BOM不是必需的,你也不需要使用。相反,你可以自己在dependencyManagement部分中定义所有托管依赖项。这些可以包括Spring,JBoss和任何其他依赖项。BOM可以大大简化你的操作。你可以根据需要添加任意数量的BOM,因此请同时添加!但是正如@Jesper所提到的,不要忘记使用正确的版本。当使用多个BOM时,它们的顺序是否都引用相同的依赖关系就很重要。

jar文件是否已下载到我的Maven依赖关系中?
注意BOM <type>pom</type>不是默认值jar。因此,没有jar可供下载。一个单独的pom.xml文件将被Maven下载并读取。



 类似资料:
  • 问题内容: 使用Maven 3.1 Eclipse Helios Aspekt: 尝试使用maven-jar / dependency-plugins创建可运行的jar文件。 问题: 创建jar文件和依赖项后,当我尝试使用命令启动jar文件时出现NoCLassDefFoundErrors 但是类/文件可以在./dependency-jars文件夹中找到???我还尝试了以下命令: 这也不起作用。 题

  • 本文向大家介绍Maven dependencies与dependencyManagement的区别详解,包括了Maven dependencies与dependencyManagement的区别详解的使用技巧和注意事项,需要的朋友参考一下 在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结

  • 本文向大家介绍剖析ASP.NET MVC的DependencyResolver组件,包括了剖析ASP.NET MVC的DependencyResolver组件的使用技巧和注意事项,需要的朋友参考一下 一、前言   DependencyResolver是MVC中一个重要的组件,从名字可以看出,它负责依赖对象的解析,可以说它是MVC框架内部使用的一个IOC容器。MVC内部很多对象的创建都是通过它完成的

  • 本文向大家介绍PHP依赖倒置(Dependency Injection)代码实例,包括了PHP依赖倒置(Dependency Injection)代码实例的使用技巧和注意事项,需要的朋友参考一下 实现类: 实现实例:

  • 主要内容:依赖管理,继承依赖管理,导入依赖管理我们知道,子模块可以通过继承获得父模块中声明的全部依赖,这样虽然避免了在各个子模块 POM 中重复进行依赖声明,但也极有可能造成子模块中引入一些不必要的依赖。为此 Maven 引入了 dependencyManagement 来对依赖进行管理。 依赖管理 Maven 可以通过 dependencyManagement 元素对依赖进行管理,它具有以下 2 大特性: 在该元素下声明的依赖不会实际引入到

  • PS:请不要建议我在这里使用assembly或其他fat-jar插件,因为我有意复制依赖项jar用于Docker映像构建优化:一层用于依赖项,另一层用于jar,在任何依赖项改变之前,依赖项层总是被缓存: