Estoy usando un local artifactory para enviar la solicitud, pero la construcción y las fases de prueba son todavía un poco lento. No es la compilación y pruebas que son lentos, es el «calentamiento» de la maven2 marco. Alguna idea?

  • Si usted encuentra una buena respuesta fuera de banda (f.ex. en otros sitios), sería muy apreciado si se ha publicado aquí como una respuesta.
  • He encontrado este artículo útil. Limitar el acceso a internet funciona bien para mí.
InformationsquelleAutor s3v1 | 2008-10-02

8 Comentarios

  1. 23

    Hay algunas posibilidades para optimizar algunos de la acumulación de tareas. Por ejemplo, la «limpia» la tarea puede ser optimizado a partir de los minutos a sólo milisegundos mediante simple truco de cambio de nombre de ‘objetivo’ de la carpeta en lugar de eliminar.

    Para obtener detalles de cómo hacerlo consulte Velocidad de hasta Maven build.

    • trucos, yo estoy a menudo perder excesiva de tiempo en la tarea de limpiar también.
    • He abordado este tema por un tiempo y se tomó el tiempo para escribir un blog post sobre esto… espero que ayude a los demás! urbancat.org/2012/05/how-to-speed-maven-up.html
    • el enlace ya no funciona. Podrías corregirlo?
  2. 9

    No sé qué versión de Maven está usando, supongo que 2, pero voy a dar lo que yo uso para Maven 1.x para acelerar y hacer las cosas de construir un poco más rápido.

    Estos tenedor de las pruebas junit en un nuevo proceso (también ayuda cuando se utilizan las variables de entorno de pruebas, etc y da pruebas de un poco más de memoria.

    -Dmaven.junit.fork=true
    -Dmaven.junit.jvmargs=-Xmx512m

    Este horquillas de la compilación que podría acelerar las cosas para usted

    -Dmaven.compile.fork=true

    Espero que esto pueda ayudar un poco, probarlo.

    También se refieren a obtener más velocidad con su maven2 construir.

    • Estoy usando maven2, pero es un buen enlace y definitivamente, voy a intentar que la versión parcheada para mis descargas. Sin embargo, la cuestión era más construir y poner a prueba los tiempos de inicio…
    • Enlace no funciona
    • La habilitación de la horquilla de hecho mi proyecto un poco más rápido
  3. 7

    Si usted está usando Maven3 ($ mvn -version), también puede seguir este guía. En mi caso, los resultados son:

    Ejecución Normal:

    $ mvn clean install 
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 03:05 min
    [INFO] Finished at: 2015-07-15T11:47:02+02:00
    [INFO] Final Memory: 88M/384M

    Con el Procesamiento en Paralelo (4 hilos):

    $ mvn -T 4 clean install
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 02:22 min (Wall Clock)
    [INFO] Finished at: 2015-07-15T11:50:57+02:00
    [INFO] Final Memory: 80M/533M

    Procesamiento en paralelo (2 hilos por núcleo)

    $ mvn -T 2C clean install
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 02:12 min (Wall Clock)
    [INFO] Finished at: 2015-07-15T12:00:29+02:00
    [INFO] Final Memory: 87M/519M
    [INFO] ------------------------------------------------------------------------

    Como podemos ver, la diferencia es de casi un minuto, cerca de 20 a 30% de mejora de la velocidad.

  4. 4
    1. Ajustar las configuraciones de memoria para una óptima por ejemplo: añadir esta línea a mvn.bat
      conjunto de MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256m

    2. Limpia fase de mvn normalmente se elimina de la carpeta de destino. En cambio, si estamos cambiando el nombre de la carpeta de destino de la fase de limpieza será mucho más rápido.<quickClean>

    3. -Dmaven.prueba.skip=true, se omita la ejecución de la prueba.

    4. Agregar -Denforcer.skip=true a mvn argumento de línea de comandos (Esto es hacer cumplir las versiones de maven, jdk ,etc, se puede omitir después de las primeras carreras)

    5. Deshabilitar la no-crítica operaciones durante la fase de construcción: Análisis, javadoc generación, fuente de embalaje. Esto le ahorrará un montón de tiempo.

    6. Spawnig nuevo proceso también ayuda en la mejora en el tiempo de
      -Dmaven.junit.horquilla=true (tenedor de las pruebas junit en un nuevo proceso)
      -Dmaven.compilar.horquilla=true (horquillas de la compilación)

      Espero que ayude.

  5. 3

    Puede utilizar -DskipTests=true para saltar de pruebas de unidad. lo que podría acelerar construye

    • Así que no iba a hacer ningún examen en el primer lugar..?
    • El CI robot va a hacer todas estas al edificio, por lo que deben estar allí.
    • -oh, indicando el modo fuera de línea le ayuda ya que no se ve en las actualizaciones remotas para instantáneas
  6. 2

    He encontrado que el análisis de reactores de proyectos es significativamente más lenta que la de un solo-pom proyectos. Si tu build es reactor (multi-módulo) y sus desarrolladores están trabajando en todos los módulos al mismo tiempo, se puede eliminar el padre POM y construir con ellas por separado, la resolución de las dependencias con el local del repo. La desventaja es que usted necesita para instalar o implementar un módulo para que sus dependientes para ver los cambios.

    También, es posible que desee buscar en el nuevo Maven 2.1 M1, que contiene importantes mejoras de velocidad.

    Si nada de esto ayuda, publicar más detalles sobre la configuración del proyecto (módulos de estructura y plugins), parámetros de línea de comandos y de configuración de hardware (memoria y disco). Ejecutar Maven-X también puede mostrar dónde se toma su tiempo.

    • de hecho, es un reactor de projct que estoy usando. tres pequeños módulos y un webprojekt. He intentado 2.1 build y lo hacía parecer un poco más rápido.
  7. 1

    Yo uso la que se instala localmente Nexus.

    • Nexus es demasiado bueno. Yo he usado tanto el nexus y artifactory, y ambos están bastante rápido. Nexus es un poco más fácil para configurar la OMI
    • buildr también podría funcionar.
    • ¿Qué Nexo que podría ayudar en este proceso?
  8. 0

    Inicialmente, usted debe obtener un análisis más fino en sus tiempos de construcción el uso de algo como este e identificar a los candidatos que están tomando más tiempo.

    Son pruebas de hilatura de una base de datos H2 por prueba? Es la descarga de exteriores de los archivos jar de tomar el tiempo? Esta será la guía de hacia dónde enfocar su investigación. La aplicación de go-fast banderas no suelen funcionar como ellos ya han sido incluidos por defecto, y no quieres sacrificar sus pruebas de saltar con las banderas.

Dejar respuesta

Please enter your comment!
Please enter your name here