zoukankan      html  css  js  c++  java
  • 线上镜像代码版本对比

    1.问题背景:

    • 接手一个一上线运行的项目,但是不知道,线上运行的代码版本

    2.解决思路:

    • 获取线上运行项目代码
    • 批量比对代码,判断版本

    3.实现方式:

    • 首先通过拉取线上镜像,通过inspect 镜像,查看项目运行目录,然后本地运行镜像,通过docker cp命令,获得项目运行文件(针对我的情况是war包)
    • 指定一个可能版本的代码,本地打包,然后通过beyondCompare软件进行反编译并比对,根据差异,定位具体版本

    4.从java文件到class文件,java编译器到底对我们的代码做了什么?

    + 注解处理器对注解生成代理类
    + 泛型与类型擦除
    + 自动装箱、拆箱与遍历循环
    + 字节码生成
    

    在此期间,我们的代码丢失了很多细节,包括但不限于,注释,注解,泛型;所以没有混淆的代码,即使反编译回成java代码,依然会和我们的源代码相差甚远;

    5. beyondCompare使用方法

    + [beyondCompare官网](http://www.scootersoftware.com/)
    + 下载软件,正版有三十天试用期限
    


    + 使用方式:

  • 相关阅读:
    Java OCR tesseract 图像智能字符识别技术
    模板
    模板
    奇怪的haproxy 跳转
    奇怪的haproxy 跳转
    tomcat path配置
    tomcat path配置
    Mongodb 安装迁移
    image.xx.com 通过haproxy 跳转到内部图片服务器
    mysqldump 利用rr隔离实现一致性备份
  • 原文地址:https://www.cnblogs.com/IC1101/p/11834477.html
Copyright © 2011-2022 走看看