线上镜像代码版本对比
1.问题背景:
- 接手一个一上线运行的项目,但是不知道,线上运行的代码版本
2.解决思路:
- 获取线上运行项目代码
- 批量比对代码,判断版本
3.实现方式:
- 首先通过拉取线上镜像,通过inspect 镜像,查看项目运行目录,然后本地运行镜像,通过docker cp命令,获得项目运行文件(针对我的情况是war包)
- 指定一个可能版本的代码,本地打包,然后通过beyondCompare软件进行反编译并比对,根据差异,定位具体版本
4.从java文件到class文件,java编译器到底对我们的代码做了什么?
+ 注解处理器对注解生成代理类
+ 泛型与类型擦除
+ 自动装箱、拆箱与遍历循环
+ 字节码生成
在此期间,我们的代码丢失了很多细节,包括但不限于,注释,注解,泛型;所以没有混淆的代码,即使反编译回成java代码,依然会和我们的源代码相差甚远;
5. beyondCompare使用方法
+ [beyondCompare官网](http://www.scootersoftware.com/)
+ 下载软件,正版有三十天试用期限
+ 使用方式:
posted on 2019-11-11 14:02 mindSucker 阅读(382) 评论(0) 编辑 收藏 举报