IDEA导入大型项目在编译时出现资源不足
- 原因分析
- 1、IDEA启动参数配置不当
- 2、编译器Heap参数设置不当
- 3、如果是Web项目,在运行时会做编译、构建Artifacts,编译很快就完成了,但是构建Artifacts却很慢
- 4、如果编译还是不行,可使用ant对项目进行编译
- 总结
原因分析
1、IDEA启动参数配置不当
在大多数情况下,我们安装了IDEA是保存默认的启动参数。对于一般的小型项目是能正常编译和运行的,但是,当项目比较大(源码1G左右),使用IDEA编译时就会报“资源不足”:
- 检查IDEA虚拟机启动配置文件的配置(idea.exe.vmoptions/idea64.exe.vmoptions,根据操作系统而定);
-server
-Xms128m
-Xmx512m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
- 可见以上配置是没办法满足大型项目的编译与运行的, 将-Xmx调大 ,建议将-Xms(初始化内存)和-Xmx(最大内存)设置成一样的,避免重新分配内存是出现卡顿;
- -Xmx参数的调整需要根据计算机内存而来,例如:计算机内存为8G,可设置**-Xmx4096m**;
- 如果以上操作完成了还是不行的话,我们就继续看下面;
2、编译器Heap参数设置不当
- 查看IDEA编译器的Heap参数
- 默认情况下为700M,可能不满足编译过程所需,一般设置为1500M
- 如果编译还是报资源不足,就继续调大heap的参数
3、如果是Web项目,在运行时会做编译、构建Artifacts,编译很快就完成了,但是构建Artifacts却很慢
- 设置编译输出的路径为/WEB-INF/classes
- 设置Artifacts的Web exploded为WebRoot
- 设置Tomcat启动的VM参数,删除Build Artifacts
4、如果编译还是不行,可使用ant对项目进行编译
- 生成build.xml
- IDEA添加ant
- 设置ant编译参数
- 设置ant编译使用的JDK
- 注意build.xml中编译节点,建议设置source=“1.7” target=“1.7”,以避免高版本JDK环境编译失败。
- 删除Build,添加Run Ant target
总结
环境搭建使用的是IDEA2019,可能和IDEA其他版本略有不同。若有叙述不当之处,请见谅。若有问题,请留言。