增加tomcat7 maven插件的内存?

时间:2012-08-13 05:39:04

标签: java maven tomcat7

我想使用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增加它。任何想法如何做到这一点?

3 个答案:

答案 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。