如何找到gradle依赖关系里导致依赖版本提升的根源?

大家好,我这里遇到了一个比较麻烦的问题,困扰我好久了,恳请大家帮忙分析一下,非常感谢!

假设我们开发人员开发了模块A、B、C,分别都有对应的dependencies工程(放BOM)和starter工程(放POM),然后有一个产品工程负责把他们集成起来,构建war包。

dependencies-模块A
  dependencies-模块C (import)
    xx.1.2.0
dependencies-模块B
  xx.1.0.0

产品工程打包:
  dependencies-模块A
  dependencies-模块B
  starter-模块A
  starter-模块B

问题是:
在产品工程查看依赖关系,发现xx的版本是1.2.0,那么怎么样才知道这个版本提升的原因是由模块C来导致的呢?

目前只看到版本提升了,然后不知道是在哪个包导致的,因为模块A的BOM中import了模块C的BOM,这种层次如果很深的话,就很难确定问题的所在。

阅读 2.7k
1 个回答

用Gradle的依赖报告工具:

./gradlew :module-name:dependencies --configuration compileClasspath

或者用IntelliJ IDEA有一个可视化的依赖分析工具也可以看

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏