Сначала пространство кучи и т. Д. Устанавливаются JVM, которую вы правильно упомянули.
Кроме того, вы можете установить их для Maven через .mvn/jvm.config
или, как вы уже упоминали, через MAVEN_OPTS
, как уже упоминалось.
MAVEN_OPTS
и, возможно, другие вещи (например, JAVA_HOME) также могут быть определены через .mavenrc
, который находится в $HOME/.mavenrc
(Linux / Mac) или %USERPROFILE%\mavenrc_pre.bat
или %USERPROFILE%\mavenrc_pre.cmd
(Windows):
Таким образом, файл .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=true
Нет значений по умолчанию, определенных Maven.Значения по умолчанию - это значения, которые определяются JVM.
Для Java 7 я бы рекомендовал не изменять PermGen, поскольку это обычно требуется, если вы развертываете в контейнеры сервлетов, такие как Tomcat или реальные серверы приложений и т. Д. Ноконечно это зависит.
Более того, цитату из книги я бы просто сказал.Просто начните с значений по умолчанию.Если мы говорим о производительности, вам следует проверить, действительно ли проблема в памяти, в которой я обычно сомневаюсь.Там, конечно, есть влияние, которое оказывает влияние, если мы говорим о сборках, которые имеют более 100 модулей в одной сборке из нескольких модулей.