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

 更新时间:2021年09月22日 14:16:20   作者:长风2015  
这篇文章主要介绍了Maven多模块编译慢的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

Maven多模块编译中遇到的坑

一、概述

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

二、坑描述和解决方法

踩坑描述

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

解决方法

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

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

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

相关文章

  • JDBC连接Mysql的5种方式实例总结

    JDBC连接Mysql的5种方式实例总结

    JDBC是Java DataBase Connectivity技术的简称,是一种可用于执行 SQL语句的Java API,下面这篇文章主要给大家介绍了关于JDBC连接Mysql的5种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Unicode、UTF-8 和 ISO8859-1区别解析

    Unicode、UTF-8 和 ISO8859-1区别解析

    这篇文章主要介绍了Unicode、UTF-8 和 ISO8859-1到底有什么区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • java控制台打印本月的日历

    java控制台打印本月的日历

    这篇文章主要为大家详细介绍了java控制台打印本月的日历,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • 聊聊Mybatis中sql语句不等于的表示

    聊聊Mybatis中sql语句不等于的表示

    这篇文章主要介绍了Mybatis中sql语句不等于的表示方式,具有很好的参考价值,希望对大家有所帮助。
    2021-07-07
  • 用IDEA如何打开文件夹

    用IDEA如何打开文件夹

    这篇文章主要介绍了用IDEA如何打开文件夹问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 基于mybatis like %%的问题

    基于mybatis like %%的问题

    这篇文章主要介绍了mybatis like %%的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java While循环 do-while循环用法

    Java While循环 do-while循环用法

    循环语句就是让计算机根据条件做循环计算,在条件满足时继续循环,条件不满足时退出循环,需要的朋友可以参考下
    2020-11-11
  • Java中JavaBean对象和Map的互相转换方法实例

    Java中JavaBean对象和Map的互相转换方法实例

    为什么需要将javaBean和map进行转换,在很多应用场景中,需要将key=value形式的数据与javaBean对象相互转换,下面这篇文章主要给大家介绍了关于Java中JavaBean对象和Map的互相转换的相关资料,需要的朋友可以参考下
    2022-11-11
  • 简单讲解Java的Socket网络编程的多播与广播实现

    简单讲解Java的Socket网络编程的多播与广播实现

    这篇文章主要介绍了Java的Socket网络编程的多播与广播实现,包括网络编程发送和接受数据的一些基础知识整理,需要的朋友可以参考下
    2016-01-01
  • elasticsearch索引index之engine读写控制结构实现

    elasticsearch索引index之engine读写控制结构实现

    这篇文章主要为大家介绍了elasticsearch索引index之engine读写控制结构实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04

最新评论