Dependencia de prueba de Maven en proyecto de múltiples módulos

Yo uso maven para construir un proyecto de múltiples módulos. Mi módulo 2 depende del módulo 1 src en el ámbito de comstackción y del módulo 1 en el scope de la prueba.

Módulo 2 –

 blah MODULE1 blah tests test  

Esto funciona bien Supongamos que mi módulo 3 depende de Module1 src y las pruebas en tiempo de comstackción.

Módulo 3 –

   blah MODULE1 blah tests compile  

Cuando ejecuto mvn clean install , mi comstackción se ejecuta hasta el módulo 3, falla en el módulo 3 porque no pudo resolver la dependencia de prueba del módulo 1. Luego hago una mvn install en el módulo 3 solo, vuelvo y ejecuto mvn install en mi pom padre para hacerlo construir. ¿Cómo puedo arreglar esto?

Tengo una duda sobre lo que intenta hacer, pero supongo que quiere reutilizar las pruebas que ha creado para un proyecto (módulo1) en otro. Como se explica en la nota al final de la Guía para usar las pruebas adjuntas :

Tenga en cuenta que las ediciones anteriores de esta guía sugerían utilizar tests lugar de test-jar . Si bien esto actualmente funciona en algunos casos, no funciona correctamente durante una construcción del reactor del módulo JAR de prueba y cualquier consumidor si se invoca una fase del ciclo de vida antes de la instalación. En tal escenario, Maven no resolverá el JAR de prueba a partir de la salida de la construcción del reactor, sino desde el repository local / remoto. Aparentemente, el JAR de los repositorys podría estar desactualizado o faltar por completo, causando una falla de comstackción (ver MNG-2045 ).

Entonces, primero, para empaquetar las pruebas comstackdas en un JAR y desplegarlas para su reutilización general, configure el maven-jar-plugin siguiente manera:

     org.apache.maven.plugins maven-jar-plugin 2.2    test-jar        

Luego, instale / despliegue el artefacto JAR de prueba como de costumbre (usando mvn install o mvn deploy ).

Finalmente, para usar el JAR de prueba, debe especificar una dependencia con un tipo específico de test-jar :

  ...   com.myco.app foo 1.0-SNAPSHOT test-jar test   ...  

En cuanto a mi comentario a la pregunta de Pascals, creo que encontré una respuesta interesante:

   maven-jar-plugin 2.2    test-jar  test-compile    ${basedir}\target    

La principal diferencia aquí, como puede ver aquí, es la etiqueta .

Crearé el archivo de prueba y estará disponible en la fase de comstackción de las pruebas y no solo después de la fase del paquete.

Funciona para mi.