Si te encuentras con algo que no comprendes puedes dejarlo en la sección de comentarios y te responderemos rápidamente.
Solución:
¿De qué tipo de módulo ‘web’ estás hablando? ¿Es una guerra simple y tiene empaque tipo guerra?
Si no utiliza el kit de herramientas web de Google (GWT), no es necesario que proporcione ningún gwt.extraJvmArgs
Bifurcar el proceso de compilación podría no ser la mejor idea, porque inicia un segundo proceso que ignora MAVEN_OPTS
en conjunto, lo que dificulta el análisis.
Así que intentaría aumentar el Xmx configurando MAVEN_OPTS
export MAVEN_OPTS="-Xmx3000m"
Y no bifurque el compilador a un proceso diferente
org.apache.maven.plugins
maven-compiler-plugin
1.5
Creciente -XX:MaxPermSize=512m
no debería ser necesario porque si el tamaño de la permanente es la razón del problema, esperaría el error java.lang.OutOfMemoryError: PermGen space
Si eso no resuelve su problema, puede crear volcados de pila para un análisis más detallado agregando -XX:+HeapDumpOnOutOfMemoryError
. Además, puede usar jconsole.exe en su directorio java bin para conectarse a jvm mientras se ejecuta la compilación y ver qué sucede dentro del montón de jvm.
Otra idea (puede ser estúpida) que se me ocurrió, ¿tiene suficiente RAM dentro de su máquina? Definir el tamaño de la memoria está bien, pero si su host solo tiene 4 GB, es posible que tenga el problema de que Java no puede usar la memoria definida porque ya la usa el sistema operativo, Java, MS-Office…
Responder tarde para mencionar otra opción más que la común MAVEN_OPTS
variable de entorno para pasar a Maven construir las opciones de JVM requeridas.
Desde Maven 3.3.1podrías tener un .mvn
carpeta como parte del proyecto en cuestión y una jvm.config
archivo como lugar perfecto para tal opción.
dos nuevos archivos de configuración opcionales
.mvn/jvm.config
y.mvn/maven.config
, ubicado en el directorio base del árbol de fuentes del proyecto. Si están presentes, estos archivos proporcionarán opciones jvm y maven predeterminadas. Debido a que estos archivos son parte del árbol de fuentes del proyecto, estarán presentes en todas las extracciones del proyecto y se usarán automáticamente cada vez que se construya el proyecto.
Como parte de las notas de lanzamiento oficiales
En Maven no es simple definir la configuración de JVM en una base por proyecto. El mecanismo existente basado en una variable de entorno
MAVEN_OPTS
y el uso de$user.home/.mavenrc
es otra opción con el inconveniente de no ser parte del proyecto.A partir de esta versión, puede definir la configuración de JVM a través de
$maven.projectBasedir/.mvn/jvm.config
archivo, lo que significa que puede definir las opciones para su compilación en una base por proyecto. Este archivo se convertirá en parte de su proyecto y se registrará junto con su proyecto. Así que ya no hay necesidad deMAVEN_OPTS
,.mavenrc
archivos Entonces, por ejemplo, si coloca las siguientes opciones de JVM en el$maven.projectBasedir/.mvn/jvm.config
expediente:-Xmx2048m -Xms1024m -XX:MaxPermSize=512m -Djava.awt.headless=true
La principal ventaja de este enfoque es que la configuración está aislada del proyecto en cuestión y se aplica también a toda la construcción, y es menos frágil que MAVEN_OPTS
para otros desarrolladores que trabajan en el mismo proyecto (olvidando configurarlo).
Además, las opciones se aplicarán a todos los módulos en caso de un proyecto de varios módulos.
Tuve el mismo problema al intentar compilar una “instalación limpia” usando un VPS Lowend de 512 Mb ram y una buena CPU. Ejecute OutOfMemory y el script eliminado repetidamente.
solía export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=350m"
y trabajado
Sigo teniendo otra falla de compilación porque es la primera vez que necesito Maven, pero el problema de OutOfMemory desapareció.
Comentarios y valoraciones
Ten en cuenta difundir este tutorial si te valió la pena.