如何控制虚拟机的参数,用于专家-码头插件?
-
18-09-2019 - |
题
如何设置VM参数码头从运行家-码头插件?
例如,我需要传递 -Xmx
参数码头运行的 mvn jetty:run
命令。
解决方案
环境变MAVEN_OPTS 是答案。串的内容MAVEN_OPTS传递给JVM(java.exe).
- Linux:在壳类型
export MAVEN_OPTS=....
- Windows:在壳(cmd.exe)的类型
set MAVEN_OPTS=...
例如:on Windows set MAVEN_OPTS="-Xmx1024m"
集堆尺寸的专家进程1024mb。
更新 (01.04.2013):通过直接的码头。
马修*法威尔(请投票 他的回答 给他信贷)来的解决方案的使用分叉的JVM进程的运行,这是码头 一个新特征的码头插件.这是一个更好的解决方案,因为前内运行,同JVM过程中作为专家(由此共享存储器)。
其他提示
对于较新版本的Maven的码头 - 插件,您可以使用mvn:run-forked
。选项jvmArgs将允许您设置-Xmx等。
有关的更多信息,请参见:码头:运行分叉:在一个单独的JVM运行未组装的web应用程序。
我觉得原来的问题是在不同的JVM 出发码头。
这似乎是你目前的做法是正确的 - 基于Maven运行码头时,码头是Maven的过程中的一个线程。因此增加Maven的堆将增加码头的堆。
你是如何设置MAVEN_OPTS?
我发现一个实例是这样的:MAVEN_OPTS='-Xmx256m -Xms10m' mvn clean jetty:run
请注意MAVEN_OPTS
是一个环境变量在这里,而不是传递给JVM(谁不知道怎么用它做)。
要指定通过命令行VM参数(如最初询问)可以执行以下操作:
mvn clean install -DargLine="-Xmx1524m"
在<jvmArgs>
PARAM这里提到: Maven的码头插件一>
我没有工作。
Maven的版本:阿帕奇的Maven 3.0.3
码头Maven插件版本:码头-行家-插件:8.1.10.v20130312
此工作:
MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &
在的Linux / Unix
export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run
将达到目的
该插件允许指定这样jvmArgs:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<jvmArgs>-Xmx1024</jvmArgs>
<scanIntervalSeconds>10</scanIntervalSeconds>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8080</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<webAppConfig>
<jettyEnvXml>jetty-env.xml</jettyEnvXml>
</webAppConfig>
</configuration>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run-exploded</goal>
</goals>
</execution>
</executions>
</plugin>
可以使用传递-Xmx参数等;
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version></version>
<configuration>
<jvmArgs>-Xmx -Xms -XX:PermSize= -XX:MaxPermSize= -XX:+HeapDumpOnOutOfMemoryError</jvmArgs>
<scanIntervalSeconds>1</scanIntervalSeconds>
<stopKey>stop-jetty</stopKey>
<stopPort>9999</stopPort>
<systemProperties>
<systemProperty>
<name>jetty.port</name>
<value>9090</value>
</systemProperty>
<systemProperty>
<name>spring.profiles.active</name>
<value></value>
</systemProperty>
</systemProperties>
<webApp>
<contextPath>/</contextPath>
</webApp>
</configuration>
</plugin>
有没有办法使用命令行。但是你可以复制mvn.cmd
/ mvn.sh
到mvnhp.cmd
并更改行
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
要
%MAVEN_JAVA_EXE% -Xmx1024m %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%