Saltar al contenido

Fallo de compilación de Maven sin memoria

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
        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 de MAVEN_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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *