28

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

4

3 回答 3

14

正如大多数人在上面的评论中所说的那样, pom.xml 中的属性没有效果。对我有用的是设置我的 MAVEN_OPTS

MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"

或者在 cmd 终端中的 Windows 上:

set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m

对于 mac/linux 用户,只需将 export 语句添加到您的 ~/.profile(或类似的文件名)。例如:

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"

并重新启动你的外壳。

于 2014-10-04T11:44:26.157 回答
3

可以这样设置属性

<configuration>
  <systemProperties>
    <JAVA_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m</JAVA_OPTS>
  </systemProperties>
</configuration>
于 2012-08-13T07:30:39.947 回答
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>

它使用参数“-Xmx4096m”在新的 JVM 中启动我的 tomcat8。

于 2015-06-25T15:06:40.280 回答