Cuando construye con Maven en una máquina multinúcleo / CPU múltiple, a menudo sería posible construir diferentes subproyectos en paralelo. ¿Hay alguna manera de hacer esto con maven? ¿Hay un complemento para esto / lo que sea?
maven-2
build-process
build-automation
Hans-Peter Störr
fuente
fuente
Las soluciones sugeridas son geniales, pero quería agregar algo a las respuestas aquí con respecto a la estabilidad de la prueba durante las compilaciones paralelas .
Entonces, cuando se usa la construcción paralela de Maven :
Pueden aparecer algunos problemas con las pruebas . Tenga en cuenta cualquier comportamiento en las pruebas que sea diferente entre la ejecución de pruebas en serie y paralelas. La mayoría de las veces sucede para hacer un aislamiento de prueba no apropiado en cuanto a recursos .
Por ejemplo, test1 manipula la entrada db con la clave 12345, que está codificada y test2 usa la misma entrada. No puede ser bueno ...
Es una situación que debe considerarse en primer lugar, pero en algún momento se olvida y podría generar problemas diferentes una vez que se realiza el cambio a la construcción paralela de Maven.
En caso de que eso suceda, y aún desee usar la ejecución paralela al menos en algunas ocasiones, puede (por supuesto, además de tratar de arreglar la prueba y aislarla adecuadamente) para deshabilitar las pruebas de Maven con el argumento -DskipTests:
fuente
Algunas de las aplicaciones de compilación de CI (por ejemplo, hudson) pueden construir múltiples proyectos maven al mismo tiempo (e incluso en múltiples máquinas).
El soporte para esto en maven 'autónomo' también sería bueno, un vistazo rápido a través del rastreador de problemas de maven me dio: http://jira.codehaus.org/browse/MNG-3004
fuente
Si llegaste a esta pregunta buscando resolver tu servidor de compilación y no estás usando uno que trate con maven de forma nativa, la bandera mágica que estás buscando es esta:
¡haz eso para cada una de tus compilaciones y puedes dejar que se ejecuten todas al mismo tiempo en lugar de tener todo lo que usa Maven en una cola!
fuente