java - 如何确定 2 个 .jar 文件是否是“相同”的版本?
问题描述
在工作中,我经常收到要在生产中部署的 Java webapp 构建,其中包括 .jar 文件中的所有依赖项。
有时,交付的构建包含具有不同版本的重复 jar,例如log4j-1.2.3.jar
和log4j-1.2.4.jar
,这会破坏我们的部署过程。
我正在寻找一种方法来确定两个 .jar 文件是否是同一事物的不同版本。我们目前正在查看文件名,如果它们只有数字不同,那么我们认为它们是重复的,但是如果从文件名中删除版本,这种方法就不起作用。
我突然想到查看 jar 文件的内容,即该MANIFEST.MF
文件的唯一属性的文件。
此类财产必须:
- 始终存在于任何 .jar
MANIFEST.MF
文件中 - 该 .jar 的所有版本/构建都通用
- 该 .jar 是唯一的(例如,log4j 和 log4j-api 之间必须不同)
我检查了一些清单文件的内容,Implementation-Title
或者Export-Package
似乎是不错的候选人,但我不确定它们是否符合上述标准。
确定我们是否有重复的 .jar 文件的最佳方法是什么?
解决方案
推荐阅读
- ios - tableview cellForRowAt indexPath 值没有在外面快速使用?
- php - OpenSSL RSA 解密失败
- flutter - 使用主题更改 Flutter 文本字段中前缀图标的颜色
- vue.js - VueJS - 模板变量不与数据变量反应
- c++ - 如何为 VScode 创建“智能”片段
- android - 如何为 toast 进行本地化?
- javascript - 选择html带有href和child的对象
- wordpress - 在我的 Elastic Beanstalk 环境中将 EFS 挂载到实例时显示错误
- ios - 无法申请 Universal App 快速启动计划 - Apple
- spring-cloud - Spring Cloud Gateway 中的 Jackson 流式处理 api 和 WebFlux 响应体