java - Maven:项目 A 不尊重项目 B 的排除
问题描述
我有两个项目A和B。
项目 A 依赖于项目 B。项目 B 依赖于库 C,而库 C 依赖于库 D。我同时拥有 A 和 B,但它们位于不同的代码库中并且是独立的。项目 B 就像一个内部通用帮助程序库。
- A
-- B
--- C (version 1.1)
---- D (version 1.1)
我想将 D 升级到更新的次要版本,比如说 1.5。
所以在B的pom.xml文件中,我直接导入了D(v1.5)。然后从 C 中排除 D。示例:
<dependency>
<groupId>D</groupId>
<artifactId>foobar</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>C</groupId>
<artifactId>fizzbuzz</artifactId>
<version>1.1</version>
<exclusions>
<exclusion>
<groupId>D</groupId>
<artifactId>foobar</artifactId>
</exclusion>
</exclusions>
</dependency>
接下来如果我跑
[~/projectB] $ mvn dependency:tree
我确认只使用了 1.5,而不是 1.1。接下来,我构建 B 的新本地快照。并指定项目 A 使用该快照。
我的问题是当我构建项目 A 时,它继续使用 v1.1 并忽略 B 中的排除。这总是返回 1.1 而不是我想要的 1.5。
[~/projectA] $ mvn dependency:tree
项目 A 从不直接导入 C 或 D,它只从导入项目 B 中获取库 D。
我试过了:
- 重新加载 Maven 导入
- 多次运行 mvn clean install。
- 从我的 .m2/ 目录中删除文件夹以强制重新导入
我没有解决问题的想法。还有其他人有任何提示吗?
解决方案
推荐阅读
- ruby-on-rails - 为作用域设计模型设置不同的配置
- java - 为什么在添加带有 int 的字符串时添加空字符串?
- raspberry-pi - 使用节点 red 模拟 modbus 从站
- wordpress - 图片未显示在本地主机上
- c# - 如何从列表中打印 1 列
- swift - UITextField 在动画开始时缩小文本
- android - Crashlytics 未报告应用程序包崩溃但使用 apk 工作正常
- java - Tomcat 使用了一个不存在的 JRE_HOME
- android - 根据之前 API 调用的结果进行 RxJava 调用的最佳方式
- python - args 没有定义?