如何提高 maven 打包速度?

259 天前
 wtotal
我试了 win10 、win11 、Windows2012 ~ 2025 ( vmware 中全新安装、打满补丁、关闭自带杀毒)
和 CentOS7
用 jdk1.8 ,maven3.5 、maven3.9 测试了 mvn clean package 一个项目,运行第二次后速度基本都稳定了

速度最快的是 CentOS7 ( 30s ),是速度最快的 Windows2012 ( 60s )一半时间。
最慢的 win11(90s)

其他 server 服务器都差不多( 90s )



表面看,windows 系列打包时 cpu 占用率都偏低,也不知道什么原因。软件还是 os 问题。
2734 次点击
所在节点    Java
20 条回复
Xbluer
259 天前
mvn -T 参数设置一下试试看
wzcloud
259 天前
有 mvnd 项目,非依赖模块可以并行编译
zhady009
259 天前
mvnd + 模块化 + 多线程
cslive
259 天前
指定多少个线程,跳过测试,使用离线模式
ratel2018
259 天前
对于 maven 打包这件事,首先是模块化+多线程,其次同硬件下 windows 最慢,macOS 至少速度翻倍,linux 还能再快 30%以上。
我测试过最大的差距,windows11 下的耗时达到过 linux 下的 7 倍。另外测试过 windows7 下的速度大概能和 macOS 相当。
采用 wsl 打包或者装 linux 虚拟机打包或者 linux 真机打包都能获得至少翻倍甚至数倍的速度。
renfei
259 天前
自建 Maven 私有仓库,仓库在本地局域网内的话,拉取速度飞快
wtotal
259 天前
@Xbluer 测试的项目有依赖顺序, -T 有时会报错
renfei
259 天前
我自建的: https://maven.renfei.net 你们用的虽然可能不快,但我本地有景象,服务器上打包就飞快
Aresxue
259 天前
分本地还是线上,本地环境 3 楼的策略你能搞完绝对够用了,线上环境就要复杂的多了,maven 本身就有一些调优参数。
wtotal
259 天前
@renfei 内网已经有了,谢谢
wtotal
259 天前
试了 mvnd 和 mvn -T ,一点区别没有,可能我不会用。
K1W1
259 天前
有时间迁移到 gradle ,迁移成本其实并不算高
wxw752
259 天前
可能很多人都帮不上忙,好多年不在本地打包了,不太在意时间问题
cutecore
259 天前
@wtotal -T 6 或者-T 2C ;加上后 75s > 30s
unco020511
259 天前
迁移到 gradle
viqbgrg
259 天前
https://stackoverflow.com/questions/6916011/how-do-i-get-windows-to-go-as-fast-as-linux-for-compiling-c

fsutil behavior set disable8dot3 1
fsutil behavior set disablelastaccess 1
这些操作之后还会加快一点,但是好像还是快不过 linux,除非杀毒软件的影响还可能有文件索引之类的影响
sam384sp4
259 天前
要快建议用 gradle
night98
258 天前
mvn -T 1C 基本上够用了,依赖顺序如果项目结构正常是没问题的,除非说项目结构有问题,这种情况只能直接指定打包顺序来解决
tuimaochang
258 天前
i7 12700h 、64g 内存的 win11 ,打 jar 包用时 12 秒
R7-7840HS 、96g 内存的 debian12 ,打 jar 包用时 6 秒
同事 m2 、32g 内存的 macbook ,打 jar 包用时 6 秒。
同一个项目,事先已经把依赖下载到本地,纯打包。
差距太大了……
CodeCodeStudy
250 天前
@tuimaochang #19 i7 12700h 怎么跟其他两个差距这么大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1098027

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX