如何提高 maven 打包速度? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wtotal
V2EX    Java

如何提高 maven 打包速度?

  •  
  •   wtotal 297 天前 2848 次点击
    这是一个创建于 297 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我试了 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 问。
    20 条回复    2024-12-26 17:20:46 +08:00
    Xbluer
        1
    Xbluer  
       297 天前
    mvn -T 参数设置一下试试看
    wzcloud
        2
    wzcloud  
       297 天前 via iPhone
    有 mvnd 项目,非依赖模块可以并行编译
    zhady009
        3
    zhady009  
       297 天前
    mvnd + 模块化 + 多线程
    cslive
        4
    cslive  
       297 天前
    指定多少个线程,跳过测试,使用离线模式
    ratel2018
        5
    ratel2018  
       297 天前
    对于 maven 打包这件事,首先是模块化+多线程,其次同硬件下 windows 最慢,macOS 至少速度翻倍,linux 还能再快 30%以上。
    我测试过最大的差距,windows11 下的耗时达到过 linux 下的 7 倍。另外测试过 windows7 下的速度大概能和 macOS 相当。
    采用 wsl 打包或者装 linux 虚拟机打包或者 linux 真机打包都能获得至少翻倍甚至数倍的速度。
    renfei
        6
    renfei  
       297 天前
    自建 Maven 私有仓库,仓库在本地局域网内的话,拉取速度飞快
    wtotal
        7
    wtotal  
    OP
       297 天前
    @Xbluer 测试的项目有依赖顺序, -T 有时会报错
    renfei
        8
    renfei  
       297 天前
    我自建的: https://maven.renfei.net 你们用的虽然可能不快,但我本地有景象,服务器上打包就飞快
    Aresxue
        9
    Aresxue  
       297 天前
    分本地还是线上,本地环境 3 楼的策略你能搞完绝对够用了,线上环境就要复杂的多了,maven 本身就有一些调优参数。
    wtotal
        10
    wtotal  
    OP
       297 天前
    @renfei 内网已经有了,谢谢
    wtotal
        11
    wtotal  
    OP
       297 天前
    试了 mvnd 和 mvn -T ,一点区别没有,可能我不会用。
    K1W1
        12
    K1W1  
       297 天前
    有时间迁移到 gradle ,迁移成本其实并不算高
    wxw752
        13
    wxw752  
       297 天前
    可能很多人都帮不上忙,好多年不在本地打包了,不太在意时间问题
    cutecore
        14
    cutecore  
       297 天前
    @wtotal -T 6 或者-T 2C ;加上后 75s > 30s
    unco020511
        15
    unco020511  
       297 天前
    迁移到 gradle
    viqbgrg
        16
    viqbgrg  
       297 天前   1
    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
        17
    sam384sp4  
       296 天前
    要快建议用 gradle
    night98
        18
    night98  
       296 天前
    mvn -T 1C 基本上够用了,依赖顺序如果项目结构正常是没问题的,除非说项目结构有问题,这种情况只能直接指定打包顺序来解决
    tuimaochang
        19
    tuimaochang  
       295 天前
    i7 12700h 、64g 内存的 win11 ,打 jar 包用时 12 秒
    R7-7840HS 、96g 内存的 debian12 ,打 jar 包用时 6 秒
    同事 m2 、32g 内存的 macbook ,打 jar 包用时 6 秒。
    同一个项目,事先已经把依赖下载到本地,纯打包。
    差距太大了……
    CodeCodeStudy
        20
    CodeCodeStudy  
       288 天前
    @tuimaochang #19 i7 12700h 怎么跟其他两个差距这么大
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3010 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 12:05 PVG 20:05 LAX 05:05 JFK 08:05
    Do have faith in hat you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86