工程源码丢失复原解决办法

  • 一、问题描述
  • 二、问题原因
  • 三、解决办法
    • 1、短视高效办法
    • 2、长远考虑

一、问题描述

多项工程引用同一个jar包的内容。但是由于工作交接,该jar包原工程的代码库中,部分源代码出现丢失,由于工程很老(struts2+spring2.5.6),已经无法找回源码。

最终的结果就是线上打的jar包内容与实际工程中源码出现了差别,后期维护将非常费劲。

二、问题原因

该工程为common工程,顾名思义,就是想将多个应用工程中共用的部分,比如数据库domain、sql.xml、工具类和其他配置工具等都集成起来,方便各个工程调用。但本人觉得这样做,如果后期工程繁重,东西增多,这个的改动将是牵一发动全身。

此外,这个工程不需要部署,仅仅是打好jar包上传即可,必然会出现误操作,比如本地打好包deploy后,没有将代码push到远端,从而导致源码丢失。

三、解决办法

如果其他小伙伴有遇到同样的问题,这里我们提供两种办法:

1、短视高效办法

如果紧急,可以直接修改你要修改的类,然后本地打包,本地使用winRAR(建议)解压后,将对应的class文件覆盖到线上拉下来的jar包(winRAR解压替换),注意将里面pom文件的版本号修改,否则影响线上,然后再打包上传,对应的其他工程引用新版本。

对于修改properties、xml等文件,可以直接将线上jar包解压缩,内部修改,因为这些文件没有反编译过程。

2、长远考虑

如果时间充足,建议还是彻底还原工程,保持与线上一致,毕竟方便后期其他人的维护。

基本过程如下:
现有工程打本地包=>将本地包和线上包反编译=>使用对比工具对比文件差异=>修改本地代码=>完成现有工程打本地包 =>将本地包和线上包反编译 => 使用对比工具对比文件差异 => 修改本地代码 => 完成 现有工程打本地包=>将本地包和线上包反编译=>使用对比工具对比文件差异=>修改本地代码=>完成
具体操作和注意事项:

  1. 解压检查线上包中的META-INF\MANIFEST.MF这个文件,看看Build-Jdk是哪个版本,那么本地也必须使用对应的jdk打包(jdk8–maven3.x;jdk6–maven3.2.5),注意使用对应的maven,否则打包失败。

  2. 将本地包和线上包复制到同一个文件夹下,使用cmd指令进行反编译,这里使用的是IDEA的反编译插件

    在IDEA中将这个插件勾选并安装上

    然后使用cmd指令进行反编译

    ## 注意:前面是idea的反编译插件的地址,后面yuanma是指定放入的文件夹,可以自定义
    ## 反编译结果还是一个jar包,会放到指定的yuanma文件夹下,但是里面的内容解压后是.java文件
    java -cp "D:\Idea\IntelliJ IDEA 2019.1.3\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true xxx.jar yuanma
    
  3. 对比工具,建议使用强悍的Beyond Compare 4

    下载链接地址:https://www.scootersoftware.com/download.php

    • 必须将反编译后的本地包和线上包解压后,拖出里面的文件夹进入到这个工具进行一一比对

    • 必须使用CRC比较

      全选文件进行内容操作 指定CRC
  4. 比较结果就是不同的地方,可以双击预览,然后根据情况修改工程内代码

工程源码丢失复原解决办法相关推荐

  1. FPGA实现JPEG-LS图像压缩,有损无损可配置,提供工程源码和技术支持

    目录 1.前言 2.JPEG-LS图像压缩理论 3.JPEG-LS图像压缩性能介绍 4.JPEG-LS图像压缩时序介绍 5.JPEG-LS图像压缩输出压缩流 6.工程源码和仿真 7.福利:工程代码的获 ...

  2. 单片机MCU51系列RTOS多任务超微操作系统精髓 简单实现 汇编及C语言混合 keil9.0工程源码

    系统设计核心意图:使用定时器,在延时过程中运行其它的任务. 工程源码:链接: https://pan.baidu.com/s/1LEV9qYmUn6SdemGz7TH6dw 提取码: iua5 切换任 ...

  3. FPGA实现MPEG2视频压缩 提供工程源码和技术支持

    1.前言 MJPEG.MPEG2.MPEG4.H264 是流行且兼容性很高的 4 种视频编码格式.其中 MJPEG 对每帧独立进行 JPEG 图象压缩,而不利用帧间相关性,因此压缩效果较差. MPEG ...

  4. FPGA USB FX2 ov5640摄像头视频采集 驱动CY7C68013A实现 提供2套工程源码和技术支持

    目录 1.前言 2.我这儿已有的 FPGA USB 通信方案 3.CY7C68013A芯片解读和硬件设计 FX2 简介 SlaveFIFO模式及其配置 4.工程详细设计方案 5.vivado工程 6. ...

  5. 【SRIO】5、Xilinx RapidIO核例子工程源码分析

    目录 一.软件平台与硬件平台 二.打开例子工程 三.例子工程详解 3.1 工程概述 3.2 工程结构 3.3 工程分析 四.工程源码分析 3.1 顶层模块srio_example_top.v源码分析 ...

  6. 5.Xilinx RapidIO核例子工程源码分析

    https://www.cnblogs.com/liujinggang/p/10091216.html 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:V ...

  7. iis php session丢失,Session丢失的解决办法小结

    原标题:Session丢失的解决办法小结 对于ASP.PHP网站且使用我司虚拟主机的用户,如果超时太短,可提交工单申请更换应用程序池(该应用程序池设置为只按时间回收,回收时间30分钟). 如果更换程序 ...

  8. 计算机中缺少d3dx9_35.dll,d3dx9_35.dll丢失怎么办-d3dx9_35.dll丢失的解决办法

    在使用计算机过程中,遇到d3dx9_35.dll丢失这种情况,该怎么办呢?那么现在小编就将和大家讲解一下d3dx9_35.dll丢失的解决办法,有需要的朋友可以来看看哦,希望可以帮助到大家. 一.如果 ...

  9. 【已完结!】Java基础--学习笔记(零起点打开java世界的大门)--博客汇总表【附:视频、工程源码、资料、详细笔记】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:z ...

最新文章

  1. 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.47. Gawk-4.1.1...
  2. 错误: 程序包r2不存在_坚果R2相机评测:大底终成大器,跻身第一梯队
  3. CVPR 2018 | ETH Zurich提出利用对抗策略,解决目标检测的域适配问题
  4. c# 获取本机 MAC地址\序列号\硬盘序列号
  5. 洛谷 1195 口袋的天空
  6. OpenGL坐标系转化之投影坐标系
  7. SimpleDateFormat 按照不同要求去改写时间的格式,或者把时间串变成date类型
  8. 二分查找递归和非递归方法分析
  9. 工作303:接口返回的上传地址默认是可以调用的
  10. 【华为云技术分享】盘点物联网常用开发板
  11. 如何设置Eclipse新建项目的默认编码方式
  12. OopenCV复习及函数深入理解(轮廓查询及绘图)
  13. 白盒测试和黑盒测试的区别
  14. 用python计算偏导数
  15. 【2021-09-22 修订】【梳理】计算机网络:自顶向下方法 第二章 应用层(docx)
  16. 设计模式之Facade
  17. uview 瀑布流_最简单的微信小程序瀑布流布局方法
  18. 在 Azure 上部署 Kubernetes 集群
  19. 《数据密集型计算和模型》第三章_内存计算复习
  20. (附源码)计算机毕业设计SSM智能导诊系统

热门文章

  1. Freescale关于USB BDM MULTILINK调试器使用说明
  2. 《DocFace: Matching ID Document Photos to Selfies》论文精读
  3. 关于Mysql INT类型及最大值问题
  4. Unity快速入门教程-制作一个简易版的计时器Time.deltaTime
  5. 请选出可用作c语言用户标识符的标识符,请选出可用作C语言用户标识符的一组标识符...
  6. Scratch少儿编程案例-大鱼吃小鱼-实时跟随鼠标
  7. java cst gmt_CST和GMT
  8. 使用MybatisPlus报错“MybatisPlusException: com.demo.bean.User Not Found TableInfoCache.“
  9. Sony/Sony Ericsson/索尼爱立信Shakira root教程_方法
  10. 结构之美——优先队列三大结构(三)——Pairing Heap