我没有最新的源代码,但已经部署了最新版本的war文件到服务器上。
请建议以下最佳方式:
1) 从war/ear文件中检索源代码
2) 将可用源代码与war/ear文件中存在但缺失于可用源代码的代码进行比较、合并和更新(我正在使用ECLIPSE IDE)
提前致谢。
War文件基本上是zip文件,因此很容易提取。(使用unzip或只需重命名文件)接下来,您可以使用像JD这样的Java反编译器。但您不会获得原始Java代码,因为编译器进行了大量优化。但它应该为您提供一个很好的起点。
一旦从EAR/WAR/Jar中提取了类,使用JAD反编译您感兴趣的代码以返回源代码: http://varaneckas.com/jad/
我不确定是否有现成的工具可以将原始源代码与类似JAD生成的反编译源代码进行比较/差异化。另外请注意,将类反编译回源代码不会产生与原始源代码完全相同的源代码——代码风格可能会有所不同,甚至代码结构也会有所不同。要在原始源代码和反编译源代码之间进行区别处理是困难的。
如果您拥有原始源代码但没有当前部署代码的源代码,那么更好的问题是问“为什么没有”?如果在您的构建过程中缺少跟踪每个构建所使用的源代码的内容,则可能更容易解决这个问题,而不是尝试进行笨重且容易出错的操作,例如对其他源代码和反编译源代码进行比较处理。
jar
(java
档案)不同,从war
中获取原始源代码(.java
文件)是不可能的。当您创建一个jar
文件时,您可以决定是否包含.java
文件。只有Java反编译器才能帮助您,详见其他回答。请注意,保留了HTML标签。这是您的完整解决方案。
将war文件部署到服务器上,可能是在tomcat服务器上。
要部署war文件,您需要将该war文件放入webapps文件夹中(C:\ASHIS_CODE\apache-tomcat-9.0.65\webapps)。 输入图像描述 放置后,您需要重新启动tomcat服务器。 然后,在webapps文件夹中将创建与您的war文件名相同的文件夹。
在eclipse或任何其他ide中打开该文件夹,该文件夹包含您的项目代码。
** 希望这能解决您的问题。