Java - 获取 Jar 包内的 pom.xml 文件

2023-12-28 13:29:44

目录

一.引言

二.通过 jar 命令

◆ 查看 Jar 包内文件

◆ 导出 Pom.xml

◆ 导出 Jar 包内文件

三.通过 unzip 命令

◆ 导出 Jar 包内文件

四.总结


一.引言

引用其他同学的 Jar 包时,需要获取其对应 jar 包内的 pom.xml 文件检查版本依赖关系,下面介绍两种直接读取 jar 包获取文件的方法。

二.通过 jar 命令

◆ 查看 Jar 包内文件

想要获取 jar 内的 pom.xml 文件,需要先确认是否存在该 xml,使用 jar tf xx.jar 命令查看 jar 内全部文件:

jar tf your-artifact.jar | grep pom.xml

◆ 导出 Pom.xml

通过 grep pom.xml 会得到多个项目内的 pom.xml,我们根据?artifactId 找到自己项目的 pom.xml 然后执行下述命令:

jar xf your-artifact.jar META-INF/maven/<groupId>/<artifactId>/pom.xml

这里 <groupId> 与 <artifactId> 根据上面 grep 得到的内容填写即可,无需指定版本,要是有多个版本可能就要 NoSuchMethod 了。执行后在当前目录会生成 META-INF 的文件夹,向下一层一层检索即可得到对应的 pom.xml 文件了。

◆ 导出 Jar 包内文件

除了 pom.xml 外,jar 包内的文件其实都可以导出,只要按照 xf 得到的内容路径替换上面的命令即可,不过这里不能得到原生的 .java 和 .scala 文件,只可以获得编译后的 .class。

三.通过 unzip 命令

◆ 导出 Jar 包内文件

unzip your-artifact.jar org/ahocorasick/trie/PayloadTrie$1.class

执行命令后在当前文件夹可以得到 org/... 的嵌套文件夹,打开即可获取 jar 包内文件。?

四.总结

这个方法主要适用于别人提供给你 Jar 包,当时也有一些 Jar 包解析的工具和 App,如果想显式操作直接应用即可,例如 GD-GUI。对于得到的 .class 文件,也可以反编译获取内部的一些代码。

文章来源:https://blog.csdn.net/BIT_666/article/details/135249821
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。