如何设置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" 

在的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.shmvnhp.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%
scroll top