java - 是否可以覆盖通过导入的 BOM 默认管理的依赖项的范围而不覆盖版本?

标签 java spring maven spring-boot

我不确定这是一个错误还是一个功能,但我试图仅覆盖 dependencyManagement 部分中导入的 BOM 中管理的依赖项的范围,而不是版本。如果我这样做,版本是未知的,但我不确定这是故意的还是我的设置有问题。

最佳答案

Maven 文档指出这是 dependency scope 的意图:

Dependency scope is used to limit the transitivity of a dependency, and also to affect the classpath used for various build tasks.

所以,是的 - 应该可以覆盖范围。但是,覆盖究竟如何影响类路径,取决于初始范围值及其最终值。

此外,如果您要覆盖 BOM 的依赖关系范围,则需要在 <dependencies> 中执行此操作。而不是在<dependencyManagement>中部分。

<dependencyManagement>用于定义依赖项版本,因此本节中唯一合适的范围是 import对于 BOM。但是,范围 provided 有一个异常(exception)。 : provided specified in <dependencyManagement> will override defined scope in <dependencies> section .

关于java - 是否可以覆盖通过导入的 BOM 默认管理的依赖项的范围而不覆盖版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54600568/

相关文章:

java - Spark udf - 带有 json 的 classcastException

java - WindowBuilder - 从 Main 打开 JFrame

java - @Controller 类中的@Transactional 方法不被视为事务性的

用于将复杂实体发布到 Spring Data REST/HATEOAS 服务的 Java 客户端

maven - 使用 Hudson 和 Maven 回滚持续部署

java - boolean 值未按 String.Contains() 中的预期返回?

java - webapp中哪里进行用户认证?

Java/Spring : How to find what error opened the Resilence4J circuit breaker?

java - 下载并安装 JavaFX for Eclipse

java - Proguard 混淆在使用 Maven 的 Jenkins 构建中失败 - 无法读取 classes.jar