项目维护的时候版本混乱或者外出在现场项目排错的时候不免要比对两个jar/class/war文件的源代码。html
一般状况下这个时候咱们用jd-gui直接把文件拖进去比对,这种状况只适合单一文件的比对。java
若是一个lib目录下有不少jar或者class文件要比对,这个时候工做量就比较大了。apache
笔者去年这个时候在网络上研究了一番,找到了一个能够批量反编译的中间件,后来写了一遍文章CFR - another java decompiler批量反编译jar文件。网络
这个能够批量反编译,具体移步看那篇文章。在以上工做背景下,笔者整理出一个能够批量maven
比对java字节码的beyond comapre的插件,以下图所示ui
使用方法很简单,只要选中两个class/jar/war就能够比较了。spa
下载本文中的附件,双击配置文件导入便可。插件
笔者有尝试把maven仓库里面的jar附加到java -classpath路径中,显示"输入行太长"错误。若是你有办法打开beyond compare安装目录下面code
的Helpers\Java目录编辑CLASS_to_JAVA_cfr.bat或者相关批处理文件,欢迎留言给我。htm
CLASS_to_JAVA_cfr.bat
@echo off java -classpath Helpers\Java\cfr\cfr_0_128.jar%jarFiles% org.benf.cfr.reader.Main %1 --caseinsensitivefs true > %2
javaDevEnv.bat
@echo off setlocal ENABLEDELAYEDEXPANSION set jarFiles= for /F %%i in (cfr\cp.txt) do ( set jarFiles=!jarFiles!;%%i) echo %jarFiles%
setclasspath.bat
@echo off color 17 title 正在生成class环境变量文件 dir /s /b /d D:\develop\apache-maven-3.5.3\repo\*.jar > "%cd%\cp.txt" title 环境变量文件已经生成....