如何获取特定Maven项目单独的dependency tree
问题结论
可以仅获取myproject1自身的依赖树,不需要改动现有项目的依赖配置,通过构建工具自带的依赖分析命令加过滤规则就能实现,你标注需要隐藏的myproject2相关非必要依赖项可以全部过滤掉。
具体实现方式
Maven 项目
- 过滤myproject2及其所有传递依赖,输出myproject1侧的完整有效依赖树:
进入myproject1根目录执行以下命令,把命令里的{myproject2-groupId}替换成myproject2实际的groupId值即可:mvn dependency:tree -Dexcludes={myproject2-groupId}:myproject2 - 如果只需要查看myproject1自身直接声明的依赖、不需要任何传递依赖,可以追加参数:
mvn dependency:tree -Dexcludes={myproject2-groupId}:myproject2 -DexcludeTransitive=true
Gradle 项目
- 过滤myproject2模块相关依赖,输出compile阶段的myproject1侧依赖树:
./gradlew dependencies --configuration compileClasspath --exclude-module myproject2
IDE可视化查看
如果用IntelliJ IDEA等内置依赖分析工具的IDE,打开myproject1的依赖可视化视图后,在过滤输入框填入-myproject2,即可自动隐藏myproject2及其带的所有传递依赖节点,和预期的展示效果一致。
内容的提问来源于stack exchange,提问作者Ravi Kant Sharma
相关产品推荐
相关产品推荐

