maven 2 - trazar - Maven: ¿cómo hacer construcciones paralelas?
cómo hacer una línea paralela con regla y compás (4)
Algunas de las aplicaciones de compilación de CI (por ejemplo, Hudson) pueden construir múltiples proyectos maven al mismo tiempo (e incluso en varias máquinas).
El soporte para esto en maven ''independiente'' también sería bueno, una mirada rápida a través del rastreador de problemas maven me dio: http://jira.codehaus.org/browse/MNG-3004
Cuando construyes con maven en una máquina multinúcleo / multi-CPU, 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?
Las soluciones sugeridas son geniales, pero quería agregar algo a las respuestas aquí sobre la estabilidad de la prueba durante construcciones paralelas .
Entonces, cuando se usa la https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3 :
mvn -T 4 clean install # Builds with 4 threads
mvn -T 1C clean install # 1 thread per cpu core
mvn -T 1.5C clean install # 1.5 thread per cpu core
Algunos problemas con las pruebas pueden aparecer. Tenga en cuenta cualquier comportamiento en las pruebas que es diferente entre la ejecución de prueba en serie y en paralelo. La mayoría de las veces sucede que el aislamiento de la prueba no es adecuado para los recursos .
Por ejemplo, test1 manipula la entrada de db con la clave 12345, que está codificada y test2 usa la misma entrada. No puede ser bueno ...
Es una situación que debe tenerse en cuenta en primer lugar, pero en algún momento se olvida y podría dar lugar a problemas diferentes una vez que se realiza el cambio a la creación paralela de maven.
En caso de que eso ocurra, y aún desea utilizar la ejecución paralela al menos en algunas ocasiones, puede (por supuesto, además de tratar de corregir la prueba y hacer que se aíslen adecuadamente) deshabilitar las ejecuciones de prueba de Maven utilizando el argumento -DskipTests:
mvn clean install -T 4 -DskipTests
Maven 3 (a partir de beta 1) ahora admite construcciones paralelas como una característica experimental.
Por ejemplo,
mvn -T 4 clean install # Builds with 4 threads
mvn -T 1C clean install # 1 thread per cpu core
mvn -T 1.5C clean install # 1.5 thread per cpu core
La documentación completa se puede encontrar en la wiki de Maven.
https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
Si llegaste a esta pregunta buscando ordenar tu servidor de compilación y no estás usando uno que trate con maven, la bandera mágica que estás buscando es la siguiente:
-Dmaven.repo.local=someNoneGlobalDir
hazlo para cada una de tus compilaciones y puedes dejar que se ejecuten todas al mismo tiempo en lugar de tener todo lo que utiliza maven en una cola.