我想使用tomcat7-maven-plugin直接从maven启动嵌入式tomcat7实例。这工作正常,但Tomcat启动似乎没有足够的内存。我怀疑我需要设置
-XX:MaxPermSize=256m
但我无法弄明白该怎么做。
文档说应该使用插件“配置”部分中的“systemProperties”元素。但是,选项被指定为XML元素,并且需要看起来像这样:
<configuration>
<systemProperties>
<XX:MaxPermSize>256m</XX:MaxPermSize>
</systemProperties>
</configuration>
但这当然不可能,因为它打破了XML(XX被解释为命名空间)。
当然,我可以通过设置环境变量来解决这个问题
MAVEN_OPTS=-XX:MaxPermSize=256m
但我更愿意只为嵌入式Tomcat增加它。任何想法如何做到这一点?
答案 0 :(得分:14)
正如大多数人在上面的评论中所说,pom.xml中的属性没有效果。对我有用的是设置我的MAVEN_OPTS
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
或在cmd终端的Windows上:
set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m
对于mac / linux用户,只需在〜/ .profile(或类似文件名)中添加一个导出语句。例如:
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
然后重启你的shell。
答案 1 :(得分:2)
您可以这样设置属性
<configuration>
<systemProperties>
<JAVA_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m</JAVA_OPTS>
</systemProperties>
</configuration>
答案 2 :(得分:0)
这个对我有用:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>...</version>
<configuration>
<container>...</container>
<configuration>
<type>standalone</type>
<home>...</home>
<properties>
<cargo.jvmargs>-Xmx4096m</cargo.jvmargs>
</properties>
</configuration>
<deployables>...</deployables>
</configuration>
</plugin>
它在一个新的JVM中使用参数&#34; -Xmx4096m&#34;启动我的tomcat8。