IntelliJ IDEA中加速Maven编译的终极指南

 更新时间:2025年10月09日 08:49:20   作者:一勺菠萝丶  
这篇文章主要为大家详细介绍了IntelliJ IDEA中加速Maven编译的终极指南,从 7 分钟提速到 30 秒,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下

 一、为什么我的 Maven 编译这么慢

很多开发者会遇到这种情况:

每次点击 “Maven → compile” 或 “install”,IDEA 都卡半天,甚至 6~7 分钟才编译完。

这其实不是你的电脑慢,而是:

  • Maven 默认是单线程串行编译
  • IDEA 默认会每次全量构建
  • 还有些人没关掉 快照更新 / 插件下载

解决方法非常简单,只要几步配置,就能让速度提升 3~10 倍 

二、基础优化:让 Maven 编译“只干正事”

1. 使用国内镜像源(加速依赖下载)

编辑你的 Maven 配置文件(通常在):

C:\Users\<你的用户名>\.m2\settings.xml

加入:

<mirrors>
  <mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
  </mirror>
</mirrors>

这样下载依赖会比默认快 10 倍。

2. 跳过测试,加速构建

如果只是想编译代码(不跑单元测试):

mvn clean compile -DskipTests

或者在 IDEA 界面中勾选:

File → Settings → Build Tools → Maven → Runner → ☑ Skip Tests

3. 关闭 “Always update snapshots”

打开右侧 Maven 工具窗口 → 点击 ⚙️ → 取消勾选:

Always Update Snapshots

这一步能让 Maven 不再每次联网检查快照依赖。

三、高级提速:并行编译与 JVM 优化

1. 启用多线程并行编译

默认的 Maven 是“一个模块编译完再下一个”,太慢!

可以用 -T 1C 启用并行编译:

mvn clean compile -T 1C -DskipTests

含义:

-T 1C = 每核 1 个线程,例如 8 核 CPU → 并行 8 线程。

-DskipTests = 跳过测试。

如果机器性能强,也可试:

mvn clean compile -T 2C -DskipTests

(但内存占用会更高)

2. 在 IntelliJ IDEA 中永久设置

打开:

File → Settings → Build, Execution, Deployment → Build Tools → Maven → Runner

填入如下:

选项配置内容
VM Options-Dfile.encoding=UTF-8
JREUse Project JDK
Skip Tests勾选
Properties空即可

然后点击右侧 Maven 工具栏 → 右键 compile → “Modify Run Configuration”

在“Command line”框中输入:

-T 1C -DskipTests

保存即可。

四、让 IDEA 只编译改动的部分(增量编译)

进入 IDEA 设置:

File → Settings → Build, Execution, Deployment → Compiler

勾选:

  • Build project automatically
  • Compile independent modules in parallel

然后按两下 Shift → 搜索 “Registry…”

打开 Registry,启用:

compiler.automake.allow.when.app.running

这样 IDEA 会在后台自动编译你改过的文件,而不是每次都全量编译。

五、(可选)使用 Maven Daemon(进一步提速)

如果你经常要运行 Maven 命令,可以使用官方的 Maven Daemon(mvnd)

安装

choco install mvndaemon   # Windows
brew install mvndaemon    # macOS

使用

mvnd clean compile -DskipTests

它会常驻 JVM,大幅减少启动和加载依赖的时间。

六、制作一个一键编译脚本

Windows 用户

在项目根目录创建一个文件 fast-compile.bat

@echo off
echo 🚀 正在并行编译项目...
mvn clean compile -T 1C -DskipTests -Dfile.encoding=UTF-8
pause

双击即可一键并行编译。

macOS / Linux 用户

创建文件 fast-compile.sh

#!/bin/bash
echo "🚀 正在并行编译项目..."
mvn clean compile -T 1C -DskipTests -Dfile.encoding=UTF-8

然后给权限:

chmod +x fast-compile.sh

运行:

./fast-compile.sh

七、常用命令速查表

场景命令
编译项目(快)mvn compile -T 1C -DskipTests
清理后再编译mvn clean compile -T 1C -DskipTests
打包(生成 jar/war)mvn clean package -T 1C -DskipTests
安装到本地仓库mvn clean install -T 1C -DskipTests
并行构建速度测试mvn clean install -T 2C -DskipTests

八、实测结果(8核 CPU)

优化项编译耗时
默认(未优化)6 分 58 秒
启用并行 + 跳过测试2 分 13 秒
启用 mvnd 守护进程34 秒 

九、总结:最推荐的组合

类别参数
编译命令mvn clean compile -T 1C -DskipTests
IDEA VM Options-Dfile.encoding=UTF-8
IDEA 设置Build automatically + Parallel compile
Maven 镜像阿里云镜像
可选工具mvnd 守护进程

十、结语

通过以上配置,你可以让原本“磨洋工式”的 Maven 构建提速数倍。

如果是大型多模块项目,提升会更明显。

从此编译不再是等待,而是“咻”地一下就好了 

到此这篇关于IntelliJ IDEA中加速Maven编译的终极指南的文章就介绍到这了,更多相关IntelliJ IDEA加速Maven编译内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 系统讲解Java如何优雅地打印日志

    系统讲解Java如何优雅地打印日志

    本文将介绍如何优雅地打印日志,告别 System.out.println,使用专业的日志框架(Logback/Log4j2)来管理日志,让你的日志更专业、更规范、更易于排查问题
    2026-05-05
  • 使用Spring Event实现内部模块间的轻松解耦

    使用Spring Event实现内部模块间的轻松解耦

    Spring Event 是 Spring 框架提供的一个核心组件,其允许服务内部不同模块之间通过观察者模式(发布-订阅模式)进行通信,从而实现模块间的解耦,本文给大家介绍了如何使用 Spring Event 实现内部模块间的轻松解耦,需要的朋友可以参考下
    2025-08-08
  • Spring项目XML文件使用小结

    Spring项目XML文件使用小结

    这篇文章主要介绍了Spring项目XML文件使用常见介绍,主要包括项目pom文件,项目初始IOC容器及项目需要自动装配的代码详解,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Bean Searcher配合SpringBoot的使用详解

    Bean Searcher配合SpringBoot的使用详解

    这篇文章主要介绍了Bean Searcher配合SpringBoot的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 全面解析SpringBoot文件上传功能

    全面解析SpringBoot文件上传功能

    这篇文章主要为大家全面解析SpringBoot文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 深入浅析Java中的volatile

    深入浅析Java中的volatile

    volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色.这篇文章主要介绍了深入浅析Java中的volatile,需要的朋友可以参考下
    2017-03-03
  • Java多线程处理千万级数据更新操作

    Java多线程处理千万级数据更新操作

    这篇文章主要为大家详细介绍了Java如何通过多线程处理千万级数据更新操作,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • Java中ThreadPoolExecutor拒绝策略踩坑

    Java中ThreadPoolExecutor拒绝策略踩坑

    本文主要介绍了Java中ThreadPoolExecutor拒绝策略踩坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • IDEA中的Structure模块使用图文详解

    IDEA中的Structure模块使用图文详解

    IDEA 的 Structure 功能,也是在看代码中一个十分常用的功能,最通用的方法,就是点击 IDEA 左下角的 Structure 标签页即可,本文重点介绍IDEA中的Structure模块使用详解,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • MybatisPlus中@EnumValue注解使用及应用场景

    MybatisPlus中@EnumValue注解使用及应用场景

    @EnumValue注解标记在枚举类型的字段上,表示该字段是枚举值在数据库中存储的实际值,这对于枚举的持久化是关键,确保枚举在数据库中的表示与Java枚举类的一致性,下面就来详细的介绍一下@EnumValue注解如何使用,感兴趣的可以了解一下
    2025-10-10

最新评论