Maven构建加速

B站影视 电影资讯 2025-09-25 05:00 1

摘要:clean :清理项目,删除target目录下所有构建产物,确保从零开始构建install :将编译打包后的项目安装到本地Maven仓库(~/.m2/repository),供其他项目依赖

mvn clean install :Maven 的两个核心命令组合

clean :清理项目,删除target目录下所有构建产物,确保从零开始构建install :将编译打包后的项目安装到本地Maven仓库(~/.m2/repository),供其他项目依赖

-DskipTests :跳过测试执行

与 -Dmaven.test.skip=true 不同,它会 编译测试代码但不执行测试用例适合快速构建场景,避免测试耗时影响开发效率

-T :控制并行构建的线程数

mvn clean install -DskipTests -T 2C

此命令将:

在本地开发环境中,先看下个人电脑的CPU核心数是多少,可以看下我之前写的文章: Windows下查看CPU个数、核心数和线程数Maven-DskipTests和-Dmaven.test.skip=true的区别如:我本地电脑CPU核心数如下物理核心数 (NumberOfCores): 14逻辑处理器数 (NumberOfLogicalProcessors):18 (说明它支持超线程技术,14个物理核心模拟出了18个逻辑线程)

指定 -T 参数时,Maven 默认使用单线程执行构建。所有模块会按照顺序一个一个地编译和打包,不会进行并行处理

| 运行模式 | 参数示例 | 含义与特点 | | ---

| 默认单线程 | (不指定 -T) | Maven 按顺序串行构建所有模块,稳定性最高。| | 指定固定线程数 | -T 4 | 明确指定使用 4 个线程进行构建。| | 按核心数分配 | -T 1C | 为每个 CPU 核心分配 1 个线程。例如,14核 CPU 则启用14个线程。这是推荐用法。| | 自动选择线程数 | -T auto (部分版本支持) | Maven 自动决定使用的线程数。|

使用 -T 参数的建议 默认是单线程,但通过 -T 参数启用多线程构建可以显著缩短构建时间,尤其是多模块项目。

可以在 mvn 命令后加上 -T 参数。例如:推荐 :使用如下命令,此组合不仅跳过测试执行,还跳过测试代码编译,实现真正的"无测试"构建,适用于快速迭代开发场景。mvn clean install -DskipTests -T 4 -Dmaven.test.skip=truemvn clean install -DskipTests -T 1C -Dmaven.test.skip=trueIDEa 下载 Maven Helper 插件后,命令设置如下:执行构建的时候选择如下

注意事项:

依赖关系:Maven 能识别模块间的依赖关系。即使启用了多线程,也会保证有依赖关系的模块按正确顺序编译。不是线程越多越快:线程数超过物理核心数时,可能因上下文切换开销导致收益递减。通常 -T 1C(与物理核心数相同)是比较高效的选择。对于如上我电脑是14核CPU,从 -T 1C(14线程)开始尝试是稳妥的。项目结构:如果项目模块不多或模块间依赖紧密,并行构建效果可能不明显。稳定性:极少数情况下,并行构建可能放大隐藏的构建顺序问题。如遇诡异错误,可回退到单线程排查。线程设置建议

如:我的 CPU 是 Intel(R) Core(TM) Ultra 5 125H ,关键参数如下:

物理核心数 (NumberOfCores): 14逻辑处理器数 (NumberOfLogicalProcessors): 18 (说明它支持超线程技术,14个物理核心模拟出了18个逻辑线程)推荐使用这个命令 :mvn clean install -DskipTests -T 1C -Dmaven.test.skip=true

此组合不仅跳过测试执行,还跳过测试代码编译,实现真正的"无测试"构建

如果想测试极限速度,可以尝试对比:mvn clean install -DskipTests -T 2Cmvn clean install -DskipTests -T 18mvn clean install -DskipTests -T 1C如果需要边构建边工作,可以使用:

来源:墨码行者

相关推荐