如何查看项目中Fat-JAR/Uber-JAR包含的所有依赖项?
排查Fat-JAR中嵌套依赖的方法
1. 直接解压Fat-JAR查看
把目标Fat-JAR文件用解压工具(如unzip、7-Zip)直接解压,在解压后的目录里搜索json-smart相关的class文件或JAR包。这类嵌套依赖通常位于BOOT-INF/lib(Spring Boot项目)或类似的lib目录下,找到对应JAR后即可定位到打包它的依赖包。
2. 使用Java命令分析JAR内容
用jar命令列出Fat-JAR内的所有文件,通过关键词过滤快速定位:
jar tf your-fat-jar-file.jar | grep -i json-smart
Windows环境下用PowerShell执行:
jar tf your-fat-jar-file.jar | Select-String -Pattern "json-smart"
该命令会直接输出Fat-JAR中包含json-smart的文件路径,帮你锁定嵌套依赖的位置。
3. 用JDK自带工具分析依赖关系
使用jdeps工具(JDK内置)分析Fat-JAR的类依赖,它能识别嵌套JAR内的依赖关联:
jdeps -recursive -verbose your-fat-jar-file.jar | grep -i json-smart
命令会输出所有依赖json-smart的类,可反向追踪到来源JAR。
4. 手动排查第三方Fat-JAR依赖
如果项目引入了第三方Fat-JAR(如SDK、工具包),直接查看其内部结构:
- 单独解压该第三方JAR;
- 用IDE的“查看JAR内容”功能(如IntelliJ IDEA双击JAR文件)浏览内部文件。
找到嵌套的json-smart后,通过Maven的<exclusions>标签从该第三方依赖中排除它,再手动引入安全版本的json-smart。
内容的提问来源于stack exchange,提问作者Abhisek Dash
相关产品推荐
相关产品推荐

