如何优化mybatis-3项目执行mvn命令的构建运行性能?
mvn site构建速度优化方案 针对mybatis-3项目执行mvn site耗时长、二次执行无明显提速的问题,可通过以下几类方案优化:
基础Maven运行参数调优
- 开启多线程并行构建:mybatis-3是标准多模块项目,执行命令时添加
-T 1C参数,即按每个CPU核心分配1个构建线程的规则并行处理不同模块,通常可降低30%左右的总构建时长;如果遇到插件模块依赖报错,可调整为-T 0.5C(每2个核心分配1个线程)降低并行度。 - 调大Maven运行内存:默认Maven分配的堆内存偏低,生成站点报告时处理大量源码、文档文件容易触发频繁GC拖慢速度,提前配置环境变量
MAVEN_OPTS="-Xms2g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200",给足运行内存并使用G1垃圾回收器减少停顿。 - 配置Maven构建缓存扩展:二次执行速度和首次一致的核心原因是默认site插件不会判断文件变更、每次全量执行所有逻辑,安装官方构建缓存扩展后,可自动识别未变更的模块/文件,直接复用上次生成的站点结果,跳过无意义的重复执行,二次构建速度通常能提升80%以上。
mvn site专项优化
- 按需跳过非必要报告生成:mybatis-3默认绑定了大量耗时的site报告插件,包括javadoc生成、代码覆盖率统计、源码交叉引用、全量依赖分析等,如果不需要生成对外发布的完整站点,可通过参数跳过不需要的环节:
- 跳过javadoc生成:添加
-Dmaven.javadoc.skip=true - 跳过jacoco/cobertura覆盖率报告:添加
-Djacoco.skip=true -Dcobertura.skip=true - 跳过源码交叉引用生成:添加
-Dmaven.jxr.skip=true
仅保留需要的报告时,整体构建速度可提升70%以上。
- 跳过javadoc生成:添加
- 关闭外部资源拉取与校验:site插件默认会校验所有外链有效性、拉取外部DTD/模板资源,这部分经常因为网络问题消耗大量时间,添加参数
-Dmaven.site.skipExternalLinks=true跳过外链校验,-Dmaven.site.xdoc.validate=false关闭文档格式校验,可省掉大量网络等待耗时。 - 开启site插件增量构建:在maven-site-plugin的配置中添加
<incremental>true</incremental>参数,开启后插件会自动判断文件变更,仅重新生成有改动部分的站点内容,无需每次全量重跑所有报告。
本地环境优化
- 将Maven本地仓库放置在SSD分区:机械硬盘的随机读写性能差,处理site生成过程中产生的大量小文件时IO瓶颈明显,挪到SSD后IO性能可提升数倍。
- 构建时关闭资源占用高的后台进程:暂停IDE索引、大文件下载、杀毒软件实时扫描等占CPU、内存、磁盘IO的任务,给构建留出足够的系统资源。
本地预览场景下推荐直接使用组合参数
mvn site -T 1C -Dmaven.javadoc.skip=true -Dmaven.site.skipExternalLinks=true -Djacoco.skip=true,实测可将mybatis-3项目的site构建时长从21分钟压缩到3分钟以内。
内容的提问来源于stack exchange,提问作者Will Huang
相关产品推荐
相关产品推荐

