Los test de integración son una herramienta útil, y usar selenium y jetty es una forma sencilla de tenerlos funcionando en un periodo razonable de tiempo. El problema viene cuando te das cuenta de que aunque ejecutes maven con el flag 'maven.test.skip=true' o 'skipTests', jetty sigue ejecutandose y parandose automáticamente.
Para evitar que jetty se ejecute durante las fases de pre-integration-test y se pare en la fase de post-integration-test, hay que ejecutar maven con el flag jetty.skip=true.
OJO: Para que este flag de jetty funcione, debe de usarse el plugin de jetty >6.1.26 ó >7.2.0 ó 8.
Ahora todo un poco más explicado:
El ciclo de vida de un proyecto maven pasa por las siguientes fases:
Los flags 'maven.test.skip=true' y 'skipTests', evitan que se 'compilen y ejecuten los test' y que se 'ejecuten los test' respectivamente, pero no evitan que se pase por las fases que hacen referencia a los tests.
Sabido esto, si tenemos test de integración, éstos no se ejecutaran si se llama a maven con alguno de los flags anteriores, pero se pasará de todas formas por las fases 16, 17 y 18. El resultado de esto, si tenemos jetty configurado para usarse como servidor en los test de integración, es que a pesar de que los test de integración no se ejecuten, jetty se inicie en la fase 16 y se pare en la 18.
Para evitar este inicio y parada de jetty, se ha creado a partir de la versión 6.1.26 y 7.2.0 de los plugins jetty de maven el flag 'jetty.skip=true'.
Fuentes: