Salida maven-monitor API
Se puede añadir una EventMonitor al despachador, y luego atrapar el final del evento 'reactor de ejecutar': esto se distribuye después de todo lo que se ha completado, es decir, incluso después de ver la creación satisfactoria/FALLA salida.
Así es como he usado recientemente para imprimir un resumen justo al final:
/**
* The Maven Project Object
*
* @parameter expression="${project}"
* @required
* @readonly
*/
protected MavenProject project;
/**
* The Maven Session.
*
* @parameter expression="${session}"
* @required
* @readonly
*/
protected MavenSession session;
...
@Override
public void execute() throws MojoExecutionException, MojoFailureException
{
//Register the event handler right at the start only
if (project.isExecutionRoot())
registerEventMonitor();
...
}
/**
* Register an {@link EventMonitor} with Maven so that we can respond to certain lifecycle events
*/
protected void registerEventMonitor()
{
session.getEventDispatcher().addEventMonitor(
new EventMonitor() {
@Override
public void endEvent(String eventName, String target, long arg2) {
if (eventName.equals("reactor-execute"))
printSummary();
}
@Override
public void startEvent(String eventName, String target, long arg2) {}
@Override
public void errorEvent(String eventName, String target, long arg2, Throwable arg3) {}
}
);
}
/**
* Print summary at end
*/
protected void printSummary()
{
...
}
Déjame asegurarme de que te entendemos. Tienes un proyecto principal y algunos hijos. Desea que este mojo se ejecute después de la prueba en el último proyecto secundario. ¿Derecha? – sblundy
Además, ¿necesita garantizar que funcione? – sblundy
~ 9 años después ... para Maven 3x vea @Konrad Windszus respuesta re: 'org.apache.maven.AbstractMavenLifecycleParticipant' – earcam