解决Maven多模块编译慢的问题
作者:长风2015 发布时间:2022-10-09 23:58:02
标签: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一下,然后在编译模块时重新引用一下。
来源:https://blog.csdn.net/posonrick/article/details/51917703


猜你喜欢
- 首先说说什么叫回调函数?在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口
- 经常进行图形界面设计的编程者肯定知道,控件在设计的时候才能随意拖动,运行的时候就不能拖动了.你肯定会问:运行时能随意拖动控件吗?答案是肯定的
- Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,
- QTableWidget 是 Qt 中的表格组件类。在窗体上放置一个 QTableWidget 组件后,可以在 Property Edito
- 在讲述这个模式之前,我们先看一个案例:游戏回档游戏的某个场景,一游戏角色有生命力、攻击力、防御力等数据,在打Boss前和后会不一样,我们允许
- 在spring Boot中,有些代码是WEB功能,例如API等,但是有些逻辑是非WEB,启动时就要调用并持续运行的,该如何加载自己的非WEB
- 多对多表之间关系表models.py文件代码from django.db import models# Create your models
- 前一段时间遇到一个问题,是关于读取项目中文件资源的问题。我是一个maven工程 我把一张照片放到resource下面,然后在本地读取的时候可
- 第一种就是 最常见的 用Try..Catch..再try中强转你要确认的string 类型成功就是int catch 就不是&n
- 多线程经常访问同一资源可能造成什么问题竞态条件和死锁如果两个或多个线程访问相同的对象,或者访问不同步的共享状态 ,就会出现竞态条件;为了避免
- 效果图如下所示: 1、在Adapter中加入如下代码<pre style="background-color:#2
- 有时候,我们的程序需要启动一些子进程,如嵌入的图形程序。当启动一个进程后,获得这个进程信息Process,然后其内部在某个时刻启动了一个子进
- SpringCloud @FeignClient 参数详解今天因为工作中遇到FeignClient一个奇葩的bug,后面仔细研究了,找出了原
- 线程可以划分优先级,优先级高的线程得到的CPU资源比较多,也就是CPU优先执行优先级高的线程对象中的任务。设置线程优先级有助于帮助线程规划器
- @RequestLine的使用及配置@RequestLine与其它请求不同,只需要简单写请求方式和路径就能达到请求其它服务的目的。@Feig
- 今天是圣诞节平安夜,为此特别制作了一个雪花飘落的场景,我们的雪花渲染方式不同于网上流行的使用Camera Filter,需要将脚本挂接到相机
- public String[] split(String regex) 默认limit为0public String[] split(Str
- 一、说明在下载或者看别人的代码我们常会看见,每一个文件的上方有个所属者的备注。如果要是一个一个备注那就累死了。二、设置方法File >
- 开发过程中会遇见很多app注册时,需要通过手机发送验证码验证 ,这是可以封装一个验证码按钮:attrs.xml<?xml versio
- 前言在我们用户登录的时候,为了安全性考虑,会增加验证码的功能,这里采用的是google的kaptcha;spirngboot是轻便,独立,使