为了账号安全,请及时绑定邮箱和手机立即绑定

Java 包的 Maven 依赖关系

Java 包的 Maven 依赖关系

森林海 2023-06-21 16:36:14
我有一个具有标准 Maven 层次结构的 Java 项目:src├── main│   ├── java│   │   └──com│   │      └──foo│   │         ├──bar│   │         │  └──baz│   │         └──qux│   └── resources└── test如何获取包使用的依赖项列表com.foo.bar.baz?
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

我能够使用jdeps完成这项工作。用法非常简单:

jdeps <options> <classes...>

其中<classes>可以是 .class 文件、目录、JAR 文件或完全限定类名的路径名。

我发现一些对我的案例有用的选项:

  • -verbose:class:默认打印类级别的依赖关系,不包括同一包内的依赖关系。

  • -classpath <path>:指定在哪里查找类文件。

  • -package <pkgname>:查找与给定包名称匹配的依赖项(可以多次给出)

  • -regex <regex>:查找与给定模式匹配的依赖项

  • -filter <regex>:过滤与给定模式匹配的依赖项。如果多次给出,将使用最后一个。

  • -filter:package:过滤同一个包内的依赖关系(默认)

  • -filter:archive:过滤同一档案内的依赖关系

  • -filter:none: 没有-filter:package-filter:archive过滤。通过 -filter 选项指定的过滤仍然适用。

  • -include <regex>:将分析限制为匹配模式的类。此选项过滤要分析的类的列表。

  • -recursive:递归遍历所有依赖关系。

包的用法示例com.abc.xyz.ui

jdeps.exe -filter:archive -classpath <project_classpath> com\abc\xyz\ui\

<project_classpath>项目的类路径在哪里。

输出:


com.abc.xyz.ui (ui)

   -> com.itextpdf.text                                  itextpdf-5.5.12.jar

   -> org.apache.commons.io                              commons-io-2.6.jar

   -> org.apache.commons.lang3.time                      commons-lang3-3.8.1.jar

   -> org.apache.commons.text                            commons-text-1.6.jar

   -> org.controlsfx.control                             controlsfx-8.40.15.jar

   -> java.io

   -> java.lang

   -> java.net

   -> java.util

我使用-filter ^java\..*选项排除 Java 运行时类:


jdeps.exe -filter:archive -filter ^java\..* -classpath <project_classpath> com\abc\xyz\ui\

输出:


com.abc.xyz.ui (ui)

   -> com.itextpdf.text                                  itextpdf-5.5.12.jar

   -> org.apache.commons.io                              commons-io-2.6.jar

   -> org.apache.commons.lang3.time                      commons-lang3-3.8.1.jar

   -> org.apache.commons.text                            commons-text-1.6.jar

   -> org.controlsfx.control                             controlsfx-8.40.15.jar


查看完整回答
反对 回复 2023-06-21
  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信