比较多个jar文件的两个不同版本

时间:2014-09-08 16:04:29

标签: java bash

好的,我会试着让这个简短而甜蜜。我试图比较一个大型Java项目与旧分支,以找出两个版本之间的变化。我已经拥有两个版本的.jar个文件,文件夹结构完全相同。

我想在bash脚本中写这个,但是我想找出解决这个问题的最佳方法,因为问题是,jar的路径(以及jar名称本身)是每个对应部分都不一样。例如......

比较jar文件:

2.2.9/com.project/dns-pool/1.2.2/dns-pool.1.2.2.jar

trunk/com.project/dns-pool/2.7.7/dns-pool.2.7.7.jar

所以基本上我需要遍历trunk中的所有文件夹并将它们与它的对应部分进行比较。

1 个答案:

答案 0 :(得分:0)

我不得不这么久回来,基本上按照3步完成了。

  1. 将jar文件重命名为.zip并提取所有类文件
  2. 将每个jar中的类文件分别解压缩到两个文件夹中 (folder_dns_1_2_2和folder_dns_2_7_7)。 (搜索谷歌的java反编译器 并找到将反编译和整个文件夹/子文件夹的东西 递归地)
  3. 使用比较工具比较两个文件夹。有些工具会 递归地比较子文件夹中的源代码并吐出一个 完整的结果。
  4. 这只需要为流程找到并使用正确的工具。我没有必要支付任何工具。您将在良好的跟踪期内找到开源工具甚至共享软件。

    如果两个罐子由不同的JRE版本编译,那么可能存在误报。但总的来说,你应该能够找出明显的差异。通过良好的比较工具,您将能够“忽略”"某些差异。

    很抱歉,我没有使用过的工具的名称。