Tomcat7-maven-pluginを使用して、組み込みのTomcat7インスタンスをmavenから直接起動したい。これは正常に動作していますが、開始されたTomcatには十分なメモリがないようです。設定する必要があると思う
-XX:MaxPermSize=256m
しかし、それを行う方法がわかりません。
ドキュメントには、プラグインの「構成」セクションにある「systemProperties」要素を使用する必要があると記載されています。ただし、オプションはXML要素として指定されており、次のようにする必要があります。
<configuration>
<systemProperties>
<XX:MaxPermSize>256m</XX:MaxPermSize>
</systemProperties>
</configuration>
ただし、これはXMLを破壊するため、もちろん不可能です(XXは名前空間として解釈されます)。
もちろん、環境変数を設定することでこの問題を回避できます
MAVEN_OPTS=-XX:MaxPermSize=256m
しかし、私は組み込みのTomcatに対してのみそれを増やしたいと思います。それを行う方法のアイデアはありますか?
この方法でプロパティを設定できます
<configuration>
<systemProperties>
<Java_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m</Java_OPTS>
</systemProperties>
</configuration>
上記のコメントでほとんど述べられているように、pom.xmlのプロパティには効果がありません。私のために働いたのは私のMAVEN_OPTSを設定することでした
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
またはWindowsのcmdターミナル:
set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m
Mac/linuxユーザーの場合は、exportステートメントを〜/ .profile(または同様のファイル名)に追加するだけです。例えば:
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
シェルを再起動します。
これは私のために働きました:
<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を起動します。