反编译 war 包成传统项目的方法
需求
项目老大让外包做了官网,不甚满意,想自己搞搞,遂叫我反编译他们发过来的 war 包。
方法
第一步:解压
war 包其实就是 zip 压缩包,用 zip 解压。
第二步:反编译
查看 war 包下面的 WEB-INF/classes,用 http://java-decompiler.github.io/ jd-gui 直接打开一个 class 文件,自动反编译文件下所有文件。然后在菜单中导出代码。
第三步:建立 maven 项目
在 IDEA 中建立 maven 项目,导入依赖,根据 WEB-INF/lib 下的依赖导入,也可以直接把类库放入 classpath 下。
第四步:修改项目配置
有一些其他的资源,例如 spring.xml 等,放入 resources 目录下。
还有一些静态资源,可以进行如下配置,这些文件会直接放到 war 根目录下。
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>resource2</directory>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
还有一些资源原来在 WEB-INF 下的,直接放入在 java 同级建立 web-inf 目录,再创建 WEB-INF 目录,放入。
第五步:打包
mvn package
第六步:下载 tomcat,放入 war,启动
http://tomcat.apache.org/,war 放入 tomcat 目录下 webapp 中,bin 中 startup.bat 启动
后记
老大说我干的不错,哈哈