问题背景:目前刚到新公司进行实习,刚去的话就是熟悉公司的技术栈
(两个版本,2.0是旧版本:Spring+JSP;3.0是新版本:微服务+React)
第一次接触真正的企业级开发,项目还是非常大的,数据库表也很多(每个表字段也很多,因为先是2.0,没有微服务,总之就是项目体量不小)
接下来说一下对于项目编译,我做出的一些改变(学到的东西):
全量编译
首先,在修改了代码之后,我还是习惯的和之前自己做项目一样,点开Maven,跳过test,进行package操作:
对应的结果就是,改了几行代码之后,进行编译测试,编译时间 50-60 min,那这样的话编译都占据了大部分时间(任务完不成了)
继续改进
于是乎,我请教了我大哥,首先做出的改进就是:
- 对于修改的 JSP 文件,直接不用重新编译,将自己修改的代码,copy 到 target 目录中相同层级相同文件中即可(JSP 不涉及编译,只要能到 target 中就行,Java 需要 编译为 class 文件)
- 对于修改较少的单个 Java 文件,直接对这个文件重新编译即可:
可以根据 IDEA Build 工具栏中的选项进行选择,分别对应 全量编译、模块编译、单个文件编译,可以根据自己修改的代码情况进行选择
请教 GPT
在进行了上述修改后,是提高了一些效率,但是还是不理想,有的情况下编译单个文件行不通,涉及到级联编译,或者一些其他问题,不是每次都能如愿的。因此,我又请教了一下 GPT:
上面两种方式感觉也比较靠谱,使用插件进行测试:
具体速度可以结合项目进行测试
- 对于方法二:并行构建,还是需要结合自己的硬件情况来进行配置
- 另外,加上参数跳过 test 速度会更快:
mvn clean package -DskipTests=true -T 4
除了以上方法以外,还有一个说法,就是把 IDEA 配置修改一下,由 javac 改为 Eclipse方式,这个方式没有具体测试,可以自行测试一下:
项目热部署
代码经过改动能自动部署启动,不需要程序员手动关闭重启就叫热部署
除了前面的方法之外,为了使项目修改及时生效,也可以使用热部署的方式,目前使用比较多的有两种:
- Devtools(需引入依赖)
- JRebel(需下载插件,高版本收费)
以上两种热部署方式可以查看此文:https://www.jiusi.cc/archives/1701606865735