首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Maven覆盖的作用域不是临时识别的?

为什么Maven覆盖的作用域不是临时识别的?
EN

Stack Overflow用户
提问于 2018-10-28 18:37:58
回答 1查看 76关注 0票数 0

在Maven中,这是一种我没想到的有趣的状态。也许有人能解释清楚为什么会发生这种事。

我有一个父POM foobar-parent,它在logback-classic部分中声明了带有test作用域的test

我有一个单独的项目项目example,它有自己的example-parent,它继承了foobar-parent,也充当了其子模块的父级。

一个子模块example-foo覆盖依赖项logback-classic并赋予它compile作用域:

代码语言:javascript
复制
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <scope>compile</scope>
</dependency>

最后,我有另一个子模块example-bar,它使用example-foo作为依赖项。

奇怪的是,对于example-bar的有效POM,它表明logback-classic具有test范围!!由于example-foologback-classic声明为compile作用域(意味着在编译时需要它),而且由于example-barexample-foo具有编译时依赖关系,所以我希望example-barlogback-classic作为一个传递依赖项引入。

我的解释是,在父POM的test管理部分中指定的<dependencyManagement>作用域将覆盖来自compile作用域的传递依赖关系的范围!!这是正确的解释吗,Maven应该是这样工作的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-28 18:59:26

您说得对:“对于传递依赖项,依赖关系管理优先于依赖中介”(取自依赖机制简介)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53034871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档