文
章
目
录
章
目
录
最近有个同学反应自己的项目使用IDEA基于maven开发的,但是之前使用package指令达成war包时,耗时在5分钟左右,现在耗时达到20多分钟,让我帮忙解决下。潘老师在调试后发现,他的项目在package打包时,时间主要消耗在building war
上,一直在那里转圈,打包非常的慢。
从图中看,进行了16多分钟,仍在还在打包中,后来发现,他的war包打出来的大小在740M,应该是打进去了很多不必要的文件,但也不应该这么慢!现在潘老师来说下具体的解决方案。
方案前提
由于package需要经历compile编译和build打包,可能会从maven仓库下载jar包,首先要保证自己的maven配置了阿里云镜像仓库,去检查下settings.xml
是否正确配置,这里潘老师检查了他的配置,是没有问题的,如果你的没配置,请先去配置,如果不会,可以参考:IntelliJ IDEA如何整合Maven图文教程详解
解决方案
潘老师采取的解决方案主要如下:
1)操作1:
进入File->setting->compiler
,将Build Process Heap Size(MBytes)
值设置为1400,增加构建缓存。
2)操作2:
进入File->Project Structure->Modules->选中项目名称-paths
,把Exclude Output paths
打钩。
以上这两个操作过后,潘老师再次执行package打包,发现时间已经快了很多,基本在6分钟就能完成打包,但是和我期待的效果还是有差距,应该还可以再快!于是,进行了如下的操作3:
3)操作3:
打开File->Invalidate Caches /Restart
,清理缓存, 并重启IDEA。重启之后,IDEA会自动重建索引, 此过程较慢,,需要耐心等待,可能需要10几分钟,该项目就花费了将近15分钟。
当索引重建好后,潘老师再次去执行package打包时,发现耗时只有1分多钟,速度和之前相比,已经提高了非常多,这个问题也算是解决了。
方案汇总
一般试了以上方案基本就解决问题了,甚至直接使用操作3,清除缓存重建索引,就能解决!如果你试了以上方法还不行,这里有多个汇总方法,可以去试试。
- 方案1: 可能是缓存的文件太多了导致: File->Invalidate Caches /Restart,清理缓存, 并重启IDEA。重启之后,会重建索引, 此过程较慢, 但build的过程会加快。
- 方案2: 进入file->Project Structure->Modules->选中项目名称-paths,把Exclude Output paths 打钩。
- 方案3: 检查pom.xml resources是否正确,把无用的注释掉。
- 方案4: File->setting->compiler,将“Build Process Heap Size(MBytes)”值设置为1400
- 方案5: 修改IDEA目录下:
/bin/idea.exe.vmoptions
和idea64.exe.vmoptions
文件:
-Xms512m -Xmx2048m -XX:ReservedCodeCacheSize=480m
总结
以上就是IDEA执行maven package打包building war非常慢解决办法,如果出现Build Artifacts
比较慢,也可以尝试如上方案。