根据这的说法:
一旦您在系统中安装了Maven,下一步就是微调它以获得最佳性能。默认情况下,最大堆分配为256-512 MB (-Xms256m到-Xmx512m)。此默认限制在构建大型复杂Java项目时不起作用,建议您至少拥有1024 MB的最大堆。
现在,我认为堆空间和permgen空间max和min值是由JVM设置的。Maven只能通过我们设置的MAVEN_OPTS env变量来设置它们。那么,maven将这些值设置为默认值在哪里呢?
如果是这样的话,默认的max是多少,最小值是多少?
我正在学习Java 7和maven 3。
发布于 2019-03-26 19:40:56
首先,堆空间等是由您正确提到的JVM设置的。
此外,您还可以为.mvn/jvm.config设置它们,也可以像前面提到的通过MAVEN_OPTS来设置它们。
MAVEN_OPTS和其他东西(例如JAVA_HOME)也可以通过位于$HOME/.mavenrc(Linux/Mac)或%USERPROFILE%\mavenrc_pre.bat或%USERPROFILE%\mavenrc_pre.cmd (%USERPROFILE%\mavenrc_pre.cmd)中的.mavenrc来定义:
因此,.mavenrc文件可以包含:
export JAVA_HOME=.../jdk-11.0.1.jdk
export MAVEN_OPTS="-Djava.awt.headless=true -Xmx2g"或者另一个选项是使用jvm.config (位于.mvn目录中的项目中)文件可以包含:
-Xmx2048m -Xms1024m -XX:MaxPermSize=512m -Djava.awt.headless=trueMaven没有定义默认值。默认值是JVM定义的值。
对于Java7,我建议不要更改PermGen,因为如果部署到Tomcat或实际应用程序服务器等servlet容器中,通常需要这样做。
此外,我想简单地说,这本书的引文。从默认值开始。如果我们谈论的是性能,那么您应该真正检查一下问题是否真的是我通常怀疑的内存问题。当然,如果我们说的是在单个多模块构建中有100+模块的构建,那么就会产生影响。
https://stackoverflow.com/questions/55363298
复制相似问题