工程源码丢失复原解决办法
工程源码丢失复原解决办法
- 一、问题描述
- 二、问题原因
- 三、解决办法
- 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、长远考虑
如果时间充足,建议还是彻底还原工程,保持与线上一致,毕竟方便后期其他人的维护。
基本过程如下:
现有工程打本地包=>将本地包和线上包反编译=>使用对比工具对比文件差异=>修改本地代码=>完成现有工程打本地包 =>将本地包和线上包反编译 => 使用对比工具对比文件差异 => 修改本地代码 => 完成 现有工程打本地包=>将本地包和线上包反编译=>使用对比工具对比文件差异=>修改本地代码=>完成
具体操作和注意事项:
解压检查线上包中的
META-INF\MANIFEST.MF
这个文件,看看Build-Jdk
是哪个版本,那么本地也必须使用对应的jdk打包(jdk8–maven3.x;jdk6–maven3.2.5),注意使用对应的maven,否则打包失败。将本地包和线上包复制到同一个文件夹下,使用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
对比工具,建议使用强悍的
Beyond Compare 4
下载链接地址:https://www.scootersoftware.com/download.php
必须将反编译后的本地包和线上包解压后,拖出里面的文件夹进入到这个工具进行一一比对
必须使用CRC比较
全选文件
进行内容操作指定CRC
比较结果就是不同的地方,可以双击预览,然后根据情况修改工程内代码
工程源码丢失复原解决办法相关推荐
- FPGA实现JPEG-LS图像压缩,有损无损可配置,提供工程源码和技术支持
目录 1.前言 2.JPEG-LS图像压缩理论 3.JPEG-LS图像压缩性能介绍 4.JPEG-LS图像压缩时序介绍 5.JPEG-LS图像压缩输出压缩流 6.工程源码和仿真 7.福利:工程代码的获 ...
- 单片机MCU51系列RTOS多任务超微操作系统精髓 简单实现 汇编及C语言混合 keil9.0工程源码
系统设计核心意图:使用定时器,在延时过程中运行其它的任务. 工程源码:链接: https://pan.baidu.com/s/1LEV9qYmUn6SdemGz7TH6dw 提取码: iua5 切换任 ...
- FPGA实现MPEG2视频压缩 提供工程源码和技术支持
1.前言 MJPEG.MPEG2.MPEG4.H264 是流行且兼容性很高的 4 种视频编码格式.其中 MJPEG 对每帧独立进行 JPEG 图象压缩,而不利用帧间相关性,因此压缩效果较差. MPEG ...
- FPGA USB FX2 ov5640摄像头视频采集 驱动CY7C68013A实现 提供2套工程源码和技术支持
目录 1.前言 2.我这儿已有的 FPGA USB 通信方案 3.CY7C68013A芯片解读和硬件设计 FX2 简介 SlaveFIFO模式及其配置 4.工程详细设计方案 5.vivado工程 6. ...
- 【SRIO】5、Xilinx RapidIO核例子工程源码分析
目录 一.软件平台与硬件平台 二.打开例子工程 三.例子工程详解 3.1 工程概述 3.2 工程结构 3.3 工程分析 四.工程源码分析 3.1 顶层模块srio_example_top.v源码分析 ...
- 5.Xilinx RapidIO核例子工程源码分析
https://www.cnblogs.com/liujinggang/p/10091216.html 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:V ...
- iis php session丢失,Session丢失的解决办法小结
原标题:Session丢失的解决办法小结 对于ASP.PHP网站且使用我司虚拟主机的用户,如果超时太短,可提交工单申请更换应用程序池(该应用程序池设置为只按时间回收,回收时间30分钟). 如果更换程序 ...
- 计算机中缺少d3dx9_35.dll,d3dx9_35.dll丢失怎么办-d3dx9_35.dll丢失的解决办法
在使用计算机过程中,遇到d3dx9_35.dll丢失这种情况,该怎么办呢?那么现在小编就将和大家讲解一下d3dx9_35.dll丢失的解决办法,有需要的朋友可以来看看哦,希望可以帮助到大家. 一.如果 ...
- 【已完结!】Java基础--学习笔记(零起点打开java世界的大门)--博客汇总表【附:视频、工程源码、资料、详细笔记】
java零基础入门到精通(2019版)[黑马程序员] 视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:z ...
最新文章
- 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.47. Gawk-4.1.1...
- 错误: 程序包r2不存在_坚果R2相机评测:大底终成大器,跻身第一梯队
- CVPR 2018 | ETH Zurich提出利用对抗策略,解决目标检测的域适配问题
- c# 获取本机 MAC地址\序列号\硬盘序列号
- 洛谷 1195 口袋的天空
- OpenGL坐标系转化之投影坐标系
- SimpleDateFormat 按照不同要求去改写时间的格式,或者把时间串变成date类型
- 二分查找递归和非递归方法分析
- 工作303:接口返回的上传地址默认是可以调用的
- 【华为云技术分享】盘点物联网常用开发板
- 如何设置Eclipse新建项目的默认编码方式
- OopenCV复习及函数深入理解(轮廓查询及绘图)
- 白盒测试和黑盒测试的区别
- 用python计算偏导数
- 【2021-09-22 修订】【梳理】计算机网络:自顶向下方法 第二章 应用层(docx)
- 设计模式之Facade
- uview 瀑布流_最简单的微信小程序瀑布流布局方法
- 在 Azure 上部署 Kubernetes 集群
- 《数据密集型计算和模型》第三章_内存计算复习
- (附源码)计算机毕业设计SSM智能导诊系统
热门文章
- Freescale关于USB BDM MULTILINK调试器使用说明
- 《DocFace: Matching ID Document Photos to Selfies》论文精读
- 关于Mysql INT类型及最大值问题
- Unity快速入门教程-制作一个简易版的计时器Time.deltaTime
- 请选出可用作c语言用户标识符的标识符,请选出可用作C语言用户标识符的一组标识符...
- Scratch少儿编程案例-大鱼吃小鱼-实时跟随鼠标
- java cst gmt_CST和GMT
- 使用MybatisPlus报错“MybatisPlusException: com.demo.bean.User Not Found TableInfoCache.“
- Sony/Sony Ericsson/索尼爱立信Shakira root教程_方法
- 结构之美——优先队列三大结构(三)——Pairing Heap