Вы можете установить параметры Java для Maven в различных точках и уровня (глобально или с помощью конфигурации плагинов):
конфигурации плагина: только для компиляции
Использование конфигурации Maven Compiler Plugin для компиляции кода приложений и тестирования кода, вы можете установить необходимые параметры Xmx, Xms, Xss через запись конфигурации compileArgs
, доступную как для compile, так и для testCompile целей. Официальный пример доступен here и на других ответах SO, таких как this one.
Пример также показан ниже на третьей точке.
конфигурация плагина: только для выполнения тестов
Использования конфигурации Maven Surefire Plugin для испытаний казней, вы можете установить необходимые параметры Java, которые будут использоваться во время выполнения с помощью записи в argLine
конфигурационной test цели. Официальный пример доступен here.
Пример также показан ниже на третьей точке.
конфигурации плагина: с помощью свойств (и профили)
Вы можете объединить эти два варианта выше (в случае общих опций Java) в качестве значения свойства для передачи как запись конфигурации compileArgs
и argLine
или имеют различные свойства за конфигурации (в соответствии с вашими потребностями).
<property>
<jvm.options>-Xmx256M</jvm.options>
</property>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<compilerArgs>
<arg>${jvm.options}</arg>
</compilerArgs>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<argLine>${jvm.options}</argLine>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
Использование свойств дает вам также два дополнительных преимущества (на верхней части централизации): вы можете использовать profiles затем настроить его на основе различных желанных поведения (и, например, в this SO answer), и вы можете изменить их с помощью командной строки а также, как:
mvn clean install -Djvm.options=-Xmx512
конфигурации Global/Project: параметры файла
поскольку Maven 3.3.1, вы можете specify параметры в файле .mvn/jvm.config
за проект. Это альтернатива MAVEN_OPTS и более суженная область (по проекту). Однако, поскольку это новая функция Maven, люди должны знать об этом, иначе могут быть затронуты устранение неполадок и техническое обслуживание.
конфигурация Global/ко: MAVEN_OPTS
Maven переменных окружений well-known установить глобальные параметры выполнения, однако применяется ко всему Maven сборок обмена, что окружающая среда (т.е. на вход пользователя).
При запуске Maven с использованием -X
опции (отладка включена), вы будете иметь следующий вывод как часть вашей сборки:
[DEBUG] properties used {java.vendor=Oracle Corporation, ... , env.MAVEN_OPTS=-Xmx256M, ...
Update
В конце концов, выполненная mvn
команды это сценарий ОС. Посмотрев на него в Windows, я нашел возможность использовать опцию MAVEN_BATCH_ECHO
, которая, если она включена (значение, установленное на on
), будет эхом выполнять любую команду, выполняемую скриптом, и как таковую также вызов команды java
, где вы можете проверьте, правильно ли выбраны ваши параметры (MAVEN_OPTS
) вместе с полным списком параметров, переданных ему.
Вот исполнение я тестировал на Windows:
set MAVEN_BATCH_ECHO=on
set MAVEN_OPTS=-Xmx256M
mvn compile > output.txt
ПРИМЕЧАНИЯ: output.txt
будет содержать довольно много текста, обеспечивая результат сборки и дополнительные echo
сек расстрелов. В рамках этого, он обеспечивает:
>"path_to_\jdk1.7\bin\java.exe" -Xmx256M -classpath "path_to\apache-maven-3.1.1\bin\..\boot\plexus-classworlds-2.5.1.jar" "-Dclassworlds.conf=path_to\apache-maven-3.1.1\bin\..\bin\m2.conf" "-Dmaven.home=path_to\apache-maven-3.1.1\bin\.." org.codehaus.plexus.classworlds.launcher.Launcher compile
Как вы можете видеть, вариант -Xmx256M
был подобран правильно. Если сценарий maven для другой ОС не предоставляет эту опцию, то вы можете просто добавить его в скрипт (простое echo
перед выполнением java
, показывая команду, также будет достаточно).
Вы можете найти скрипт maven в папке установки maven под подпапкой bin
.
Update2
Кроме того, поскольку Maven является инструментом Java после того, как все, и как вы можете видеть из своего сценария он вызывает команду Java, вы можете увидеть все возможные варианты, как предложено в этом SO answer слегка изменение сценария Maven и использование команды jinfo
, которая должна действительно дать вам ответ в соответствии с этим другим SO answer.
Возможный дубликат [Как распечатать фактические MAVEN \ _OPTIONS, которые используются?] (Http://stackoverflow.com/questions/3167364/how-to-print-the-actual-maven-options-that- используются) – Tunaki
Вас интересует только то, как проверить, какие опции Maven используются, а также другими способами настроек - одни и те же параметры? –
да Я также заинтересован в других путях, спасибо – Vituel