2012-08-13 16 views
25

Quiero iniciar una instancia incrustada de tomcat7 directamente desde maven usando el plugin tomcat7-maven. Esto funciona bien, pero el Tomcat iniciado no parece tener suficiente memoria. Sospecho que necesitaría establecer¿Aumenta la memoria del plugin maven tomcat7?

-XX:MaxPermSize=256m 

pero no puedo encontrar la manera de hacerlo.

La documentación dice que uno debe usar el elemento "properties" en la sección de "configuración" del complemento. Sin embargo, las opciones se especifican como elementos XML y necesitarían para parecerse a lo siguiente:

<configuration> 
    <systemProperties> 
    <XX:MaxPermSize>256m</XX:MaxPermSize> 
    </systemProperties> 
</configuration> 

Pero eso es, por supuesto, no es posible, ya que rompe el XML (XX se interpreta como un espacio de nombres).

Por supuesto que podría solucionar este problema estableciendo la variable de entorno

MAVEN_OPTS=-XX:MaxPermSize=256m 

pero yo preferiría que sólo aumentan para el Tomcat incluido. Alguna idea de como hacer eso?

Respuesta

2

Es posible ajustar las propiedades de esta manera

<configuration> 
    <systemProperties> 
    <JAVA_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m</JAVA_OPTS> 
    </systemProperties> 
</configuration> 
+2

Muy bueno, incluso si no está documentado en absoluto :-) – Sebi

+11

Esto en realidad no funcionó para mí, y realmente no esperaba que lo hiciera. El proceso de Java ya ha comenzado y parece que [incluso si te bifurcas, todavía no obtienes un nuevo proceso de Java] (http://mojo.10943.n7.nabble.com/How-to-set-user- timezone-within-tomcat-maven-plugin-td36517.html). Así que creo que tienes que establecer los tamaños máximos de almacenamiento dinámico antes de iniciar Maven. Cuando traté de usar la etiqueta para establecer el tamaño de la permanente en 256, hice un jstat -gccapacity maven-pid después de iniciar la aplicación y vi que mi máximo de perm gen seguía siendo de 82 kb – rzrelyea

+18

y agregar esto a pom.xml no trabajo, es demasiado tarde. Tiene que pasar dichos parámetros directamente a la JVM, en la Ejecutar -> Ejecutar configuraciones ...-> pestaña JRE -> Argumentos VM. Puede comprobar lo que está pasando con VisualVM (perfilador simple integrado con Oracle JDK). –

13

Como la mayoría dicho en los comentarios anteriores en las propiedades pom.xml no tiene effct. Lo que funcionó para mí estaba poniendo mis MAVEN_OPTS

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

O en Windows en un terminal cmd:

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

Para los usuarios/Linux Mac, basta con añadir una declaración de exportación a su ~/.profile (o similar nombre del archivo). Por ejemplo:

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

Y reinicie su caparazón.

+0

Por supuesto, la propiedad maven que mencioné en mi respuesta no cambia la memoria del proceso Maven. , pero para el proceso de Tomcat iniciado por Maven. Eso es lo que el cartel original preguntó: ¿Cómo aumentar la memoria del plugin maven tomcat7? – Sebi

+2

El problema es que su solución _Sebi_ * no * cambia la memoria del proceso Tomcat iniciado como _rzrelyea_ ya se señaló anteriormente, no se inicia ningún proceso Tomcat por separado. –

+0

Tenga cuidado si está utilizando un corredor de prueba fiable "bifurcando", puede no respetar MAVEN_OPTS ... http: //stackoverflow.com/questions/4066424/java-lang-outofmemoryerror-java-heap-space-in- maven – rogerdpack

0

Esto se trabajó para mí:

<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> 

Se pone en marcha mi tomcat8 en una nueva JVM con el argumento "-Xmx4096m".

+0

Eso es genial, excepto que no es una configuración para el complemento tomcat7 que es una configuración para el complemento de carga. –

Cuestiones relacionadas