Tengo un proyecto maven de varios módulos y me gustaría poder ejecutar una operación (antrun) después de que todos los submódulos hayan terminado su ejecución.Proyecto de varios módulos de Maven: cómo ejecutar una operación después de que todos los submódulos hayan terminado
En mis proyectos construyo RPM de cada submódulo y en la fase de implementación copio los RPM (por ssh) en un repositorio de RPM.
El repositorio RPM requiere que ejecute un comando createdb después de agregar nuevos RPM para que pueda indexarlos.
Tengo un antrun que realmente ejecuta scp y copia los RPM al repositorio. Se ejecuta para cada submódulo que realmente produce un RPM y está enganchado al maven desplegar la fase. Lo que puedo hacer es que después de cada scp ejecute el comando createrepo, pero eso sería un desperdicio, tengo más de 10 submódulos y cada createrepo demora alrededor de un minuto, por lo que perderé un tiempo de construcción precioso.
Lo que me gustaría hacer es después de que todos los submódulos hayan terminado, y luego ejecutar el createrepo. Una vez.
Mi primer intento fue enganchar el antrun que llama al comando createrepo al pom del padre (el super-pom) desplegar la fase. Lo hice y el problema fue que la fase de despliegue del padre ejecuta antes de la fase de implementación de los submódulos. Quería que se ejecutara después de
No puedo adjuntar el createrepo antrun a ninguna otra fase posterior ya que la fase de implementación es la última en el ciclo de vida.
Así que mi pregunta es: ¿hay alguna manera de ejecutar un antrun de "limpieza" o un complemento en general que se ejecutará una vez, después de que todas las operaciones de compilación de todos los submódulos hayan finalizado correctamente?
Un truco sería crear otro submódulo y asegurarse de que sea el último al hacerlo dependiente de todos los demás módulos y ejecutar el createrepo desde la fase de implementación de este módulo. Pero eso es feo y difícil de mantener. Yo prefiero una solución más limpia.
Gracias
versión 2.2.1 Maven es
¿Se le ocurrió una solución más agradable? –