Java 如何控制maven jetty插件的VM参数?
如何从maven Jetty插件为Jetty运行设置VM参数Java 如何控制maven jetty插件的VM参数?,java,jetty,maven-2,maven-jetty-plugin,Java,Jetty,Maven 2,Maven Jetty Plugin,如何从maven Jetty插件为Jetty运行设置VM参数 例如,我需要将-Xmx参数传递给通过mvn Jetty:run命令运行的Jetty。您当前的方法似乎是正确的-通过maven运行Jetty时,Jetty是maven进程中的一个线程。因此,增加maven的堆将增加jetty的堆 您如何设置MAVEN_选项 我发现的一个例子是这样的:MAVEN_OPTS='-Xmx256m-Xms10m'mvn clean jetty:run 请注意,MAVEN\u OPTS在这里是一个环境变量,而不是
例如,我需要将
-Xmx
参数传递给通过mvn Jetty:run
命令运行的Jetty。您当前的方法似乎是正确的-通过maven运行Jetty时,Jetty是maven进程中的一个线程。因此,增加maven的堆将增加jetty的堆
您如何设置MAVEN_选项
我发现的一个例子是这样的:MAVEN_OPTS='-Xmx256m-Xms10m'mvn clean jetty:run
请注意,
MAVEN\u OPTS
在这里是一个环境变量,而不是传递给JVM(谁也不知道如何处理它)。环境变量MAVEN\u OPTS就是答案。MAVEN_OPTS的字符串内容被传递给JVM(java.exe)
- Linux:在shell类型中导出MAVEN_OPTS=..
- Windows:在shell(cmd.exe)中键入
set MAVEN\u OPTS=…
set MAVEN_OPTS=“-Xmx1024m”
将MAVEN进程的堆大小设置为1024mb
更新(01.04.2013):将其直接传递给Jetty
Matthew Farwell(请向上投票给他)提供了使用分叉JVM进程来运行Jetty的解决方案,Jetty是。这是一个更好的解决方案,因为前者在与Maven相同的JVM进程中运行(因此共享内存)。在Linux/Unix上
export MAVEN_OPTS="-Xmx256m" && mvn clean install jetty:run
将实现这一技巧对于最新版本的maven jetty插件,您可以使用
mvn:run forked
。jvmArgs选项将允许您设置-Xmx等
有关详细信息,请参阅:
我认为最初的问题是。该插件允许您如下指定JVMARG:
<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>
org.mortbay.jetty
jetty maven插件
-Xmx1024
10
8080
60000
jetty-env.xml
测试
跑爆
此处提到的
参数:
不适合我
Maven版本:ApacheMaven 3.0.3
Jetty Maven插件版本:Jetty Maven插件:8.1.10.v20130312
这起到了作用:
MAVEN_OPTS='-Xmx4096m -Xms4096m'
export MAVEN_OPTS
mvn jetty:run &
您可以使用传递-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>
org.eclipse.jetty
jetty maven插件
-Xmx-Xms-XX:PermSize=-XX:MaxPermSize=-XX:+HeapDumpOnOutOfMemoryError
1.
停靠码头
9999
码头
9090
spring.profiles.active
/
要通过命令行指定vm参数(如最初要求的),可以执行以下操作:
mvn clean install -DargLine="-Xmx1524m"
没有办法使用命令行。但是您可以将
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%
到
这不会为整个JVM运行设置它吗?有没有办法让它影响jetty的启动?是的,请看(并投票赞成)Matthew Farwell的新答案-jetty插件有一个新特性,可以在单独的jvm中运行jetty,并有自己的论证。我知道这个问题确实很老,但你找到解决方案了吗?(我的意思是不为整个JVM添加参数,而只为jetty添加参数)我认为Cargo可以做到这一点,但我不想为我的项目添加其他内容……是的,使用-DargLine。。。请参阅下面我的答案,了解完整示例DargLine不适用于jetty:run,它适用于jetty:run forkeddid不适用于我,我尝试了:org.mortbay.jetty jetty maven plugin 8.1.5.v20120716-Xmx2048M-XX:MaxPermSize=2048m${project.basedir}/war${project.basedir}/war/WEB-INF/WEB.xml@davidjnelson您需要使用
jetty:runforked
goal。请参阅:上面Matthew Farwell的回答:。但是,当键入的命令是mvn clean install
时,如何让jetty作为jetty:run forked
运行?这将为以后的执行保留变量集,这可能不是预期的。在我的情况下,jetty在运行WAR文件之前组装WAR文件的解决方案是一个问题。组装WAR文件时,插件似乎跳过了复制和打包Web资源时需要的“过滤步骤”。jetty:deploy war目标仅使用预构建的war文件,但不支持jvmArgs参数:-(设置MAVEN_OPTS env变量是可行的,但我必须为我构建的其他应用程序设置它。如果我可以通过插件配置设置JVM选项,并将该配置与需要它的应用程序保持在一起,那就太好了。在什么情况下可以工作?它是针对jetty的吗?对我来说,它不起作用,而设置MAVEN_OPT did.mvn-DargLine=“-Xmx1524m"clean install@cafebabe1991很高兴你对我的帖子发表评论,并突出显示错误(如果有)。不要认为有必要修改我的答案,因为这是我的答案!!不知道为什么Stackoverflow会允许修改别人的答案,因为你不喜欢-D标志的顺序。据我所知,顺序是不相关的t、 还原回原始答案。@christritchie如果我没记错的话-D没有被maven拾取,除非它是按照我指定的顺序。我同意我不应该编辑你的答案。
%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%