Maven多模块编译慢的问题

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

        

其中下面标红两个工程为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

以上就是本次总结,现记录于用于备忘,也希望能对正遇到此问题朋友有些许帮助!

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Maven 是一个优秀的构建工具,但是在项目越来越庞大的时候,由于类的数量增多会导致编译速度下降,这是非常常见的问题。造成这个问题的原因主要有两个方面:一是项目本身庞大,包含了大量的类文件,二是依赖库的不断增加,使得 Maven 在执行构建时需要不断下载依赖库,进而增加了编译的时间。 针对这个问题,我们可以从以下几个方面入手来缩短编译时间: 1. 减少依赖的数量 在进行项目开发时,我们经常会依赖一些第三方库。但是这些库的数量过多会直接导致编译时间的增加。因此我们可以通过分析项目的依赖关系,筛选出不必要的库,选择性的进行依赖。另外,对于一些常用的库,我们可以考虑将其打包到项目中,避免依赖库的下载。 2. 提升计算机的性能 如果我们的计算机性能过差,也会导致编译速度下降。因此需要将计算机的配置升级,增加内存、CPU等硬件配置,提高系统的运行速度。 3. 使用并发编译 Maven有一个称为并发构建的功能,它可以同时编译多个模块,从而缩短编译时间。需要注意的是,并发构建不适用于所有项目,具体的应用需要结合项目的实际情况和硬件配置来判断。 4. 合理利用缓存 Maven 有一个缓存功能,缓存会在本地机器中保存已经编译过的依赖库,这样在下一次编译时就可以从缓存中调取,而不必重新下载。因此,合理利用缓存会大大提高编译速度。 总之,针对编译问题,我们需要从减少依赖、提升计算机性能、使用并发编译、合理利用缓存等多个方面入手,找到合适的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值