【问题标题】:How can I update my transitive dependency in maven?如何在 Maven 中更新我的传递依赖?
【发布时间】:2020-08-04 04:25:15
【问题描述】:

假设我有项目 P,它依赖于库 A,而 A 依赖于库 B,所以我在 B 中发现了错误并希望通过保持相同版本的 A 库来更新库,一种解决方案是从 A 中排除并添加再次依赖,但我正在寻找的是它应该在标签中完成。

【问题讨论】:

  • 不幸的是,您不清楚..it should be done with in tags 的确切含义。否则您可以简单地将依赖项 B 添加到您的 pom 目录中,使用较新的版本,但当然可能是您的构建/测试失败导致它不是 A 所依赖的版本,如果它们不兼容,您可能会失败...

标签: java maven maven-3 maven-assembly-plugin


【解决方案1】:

P pom.xml

        <dependency>
            <groupId>A</groupId>
            <artifactId>A</artifactId>
            <version>1</version>
        </dependency>// this version comes with buggy B (version 1 for instance)
        <dependency>
            <groupId>B</groupId>
            <artifactId>B</artifactId>
            <version>2</version>// override the version coming from A
        </dependency>

但是 --> 确保 A 可以使用新版本的 B....

最佳解决方案 -> FIX B --> 使用新 B 升级 A --> 升级 P 中的 A 依赖项

【讨论】:

  • 其实我有一个父 pom.xml,其中 A 是主库,B 是传递库,当我按照上面提到的那样做时,我必须在所有子项目中添加条目为 BB2//更新版本 ,....我想避免这种情况并在父 pom.xml 中进行修改和更改应该反映在每个子项目中
  • 所以?为什么不在 parent 中重新定义 B 依赖关系?
  • 如果您在父项目中重新定义 B 依赖项,那么所有子项目都必须包含这些更改,对吗?
  • 是的。如果您不希望这样做,则必须在特定模块中重新定义版本。只是避免使用不同版本的库的耦合模块。它可能会在运行时导致严重问题
猜你喜欢
  • 2018-07-06
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 2013-02-17
  • 2022-01-17
相关资源
最近更新 更多