java - 检测编译的 jar 和 repo 中的代码之间的差异

标签 java maven decompiling

我当前项目的一名承包商有一个奇怪的习惯,即以 jar 的形式将修复部署到生产中,而不是将固定代码推送到项目的 git 存储库。有数十个 Maven 项目打包到 jar 中

是否有任何实用的方法可以检测并绘制生产中编译的 jar 与存储库中的代码之间的所有差异?目前我可以用IDEA反编译jar并将结果与​​代码进行比较。反编译的代码在设计上与原始代码不同,因此需要很长时间并且可能会导致错误。

最佳答案

为了检测更改的类,我将编译代码库中的代码,并在刚刚创建的类文件和生产中的类文件之间进行逐类二进制比较。这可以很容易地实现自动化。

但真正的解决方案当然是:你的公司应该有一条规则,即只有从官方 git 存储库中提取的构建服务器(Jenkins、Bamboo 等)进行构建才能投入生产。无一异常(exception)。

关于java - 检测编译的 jar 和 repo 中的代码之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56930172/

相关文章:

java - 在 producer.send 期间获取 ProducerFencedException 的原因是什么?

java - Cobertura 未显示继承类的覆盖范围

.net - 属性 setter 中 Interlocked.Exchange 的简写

java - 根据 LGPL 代码许可合规地分发可执行 JAR

eclipse - WTP - m2e 不部署传递依赖

c# - 是否可以将 C# 编译为 IL 并将生成的 IL 反编译为 F#?

ios - 使应用程序反编译保存

java - RxJava - 当返回可能为空时使用平面图

java - (如何)我可以使用 JSoup 下载图像吗?

java - 抽屉导航中的 onClick 事件不起作用