欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决Maven多模块编译慢的问题

程序员文章站 2022-06-17 22:24:59
目录maven多模块编译慢maven多模块编译中遇到的坑maven多模块编译慢最近在部署项目时发现,maven编译打包相当耗时,比之前项目用gradle慢了很多倍,特别是对于web工程,打war包花的...

maven多模块编译慢

最近在部署项目时发现,maven编译打包相当耗时,比之前项目用gradle慢了很多倍,特别是对于web工程,打war包花的时间很长,在unix主机下一般会用到3到4分钟,如果有多个web工程,那简直不能忍受,经过查找资料并结合本人真实验证,原本编译打包需要8分钟的项目,优化编译后时间减少至34秒。

如下图:

解决Maven多模块编译慢的问题

其中下面标红两个工程为web工程。下面来说一下进行了哪些优化:

  • 1、增加跳过测试代码的编译命令 -dmaven.test.skip=true ;
  • 2、增加编译-dmaven.compile.fork=true 参数,用以指明多线程进行编译;
  • 3、如果你用的maven是3.×以上版本,可以增加 -t 1c 参数,表示每个cpu核心跑一个工程;

完整命令如下

mvn clean package -t 1c -dmaven.test.skip=true  -dmaven.compile.fork=true

maven多模块编译中遇到的坑

一、概述

maven使用过程中,如果使用多model的形式组织项目,单个模块之间是相互独立的;编译整个root目录时会对每个模块都进行统一编译。单单对某个模块进行编译,该模块不会对其他模块进行编译,即便是其引用的模块。

二、坑描述和解决方法

踩坑描述

在对一个通用jar包进行打包时,该模块对其他模块进行了引用,由于引用模块的代码进行了修改,在使用该包的过程成老是出现错误;

解决方法

对root目录进行打包,这样整个项目就会重新编译,修改的依赖代码就可以更新了;

或者是把引用模块重新编译,install一下,然后在编译模块时重新引用一下。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。