Сборка Maven с использованием / выделением огромного количества памяти - PullRequest
1 голос
/ 11 февраля 2011

У меня есть проект GWT (Google Web Toolkit) приличного размера, который построен с использованием Apache Maven.Процесс сборки включает в себя создание 8 rpms и 2 войн.

Я пытаюсь построить проект на удаленном виртуальном сервере, используя CentOS 5.2 в качестве гостевой ОС.Поскольку гостевая ОС не может использовать пространство подкачки, мне приходится выделять огромный объем памяти для ее сборки, в противном случае я получаю java could not allocate memory error (error=12).Сборка завершается неудачно, если на диске меньше 7 ГБЯ подозреваю, что большая часть этих 7 ГБ никогда не используется, но по какой-то причине выделяется.

В конце сборки вывод будет выглядеть так:-Xms256m -Xmx1024M

Я не уверен, как заставить сборку maven использовать меньше памяти.Любые предложения приветствуются.

Ответы [ 2 ]

3 голосов
/ 11 февраля 2011

Обратите внимание, что для разветвления плагинов, таких как плагин maven gwt (и maven surefire), используется память, которая «находится за пределами» общего объема, сообщаемого выполнением maven. Я бы порекомендовал сопоставлять размеры процессов на уровне ОС с выводом из «jps -lv», чтобы выяснить, какой форк ворует всю вашу память.

Если, например, по какой-то причине разветвленный процесс не завершится, он будет очень переполнен, очень быстро.

2 голосов
/ 11 февраля 2011

Эта память указывает на то, что ей когда-либо требовалось максимум 553M, поэтому настройка в MAVEN_OPTS уже выше того, что вам нужно.Вы говорите, что хотите использовать меньше, чем, или в настоящее время вы получаете ошибку?

...