2011-06-24 13 views
25

Tengo un archivo de prueba que me gustaría instalar. No estoy seguro de si hay una manera diferente de instalar los archivos de prueba, como definir una propiedad que le indique a Maven que es un archivo de prueba.¿Cómo instalo un tarro de prueba en maven?

Además, groupId y artifactId son lo mismo que otro jar del que se realiza la prueba.

Hasta ahora Así es como mi comando de instalación se ve así:

mvn install:install-file -DgroupId=com.example -DartifactId=example -Dpackaging=jar -Dversion=1.2.3 -Dfile=example-test.jar -DgeneratePom=true 

¿Cómo funciona exactamente habría que instalar una jarra de prueba? Sé que tiene que haber algo que decirle a los maven, es un archivo de prueba, ya que groupId y artifactId son los mismos que los de otro jar (que sería el jar del que test-example es una prueba).

+0

packagin deberá ser comprobado frasco -Dpackaging = prueba-jar http: // stackoverflow .com/a/15108813/201514 –

Respuesta

38

No necesita instalarlos manualmente. Maven lo hará por usted al ejecutar:

mvn clean install 

Es necesario una configuración a lo largo de las líneas de:

... 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.2</version> 

       <executions> 
        <execution> 
         <goals> 
          <goal>test-jar</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
    ... 

Luego, más tarde en su otro módulo en el que tendrá que usarlo, necesita definir el tipo de la dependencia como:

<dependency> 
    <groupId>com.foo</groupId> 
    <artifactId>bar</artifactId> 
    <version>1.2.3</version> 
    <type>test-jar</type> 
    <scope>test</scope> 
</dependency> 
+0

Correcto, pero eso supone que ambos proyectos forman parte de un POM agregado, ¿no? ¿Qué sucede cuando el proyecto que suministra el archivo de prueba está completamente separado del proyecto que utiliza el archivo de prueba? Me gustaría instalar primero el archivo jar de prueba en el primer proyecto para que esté en mi ''/.m2/repository' local, ¿verdad? ¿Como podría hacerlo? –

+0

No se menciona un agregador ni en la pregunta del cartel original ni en mi respuesta. Puedes tener los dos proyectos completamente separados. Aún agregaría la dependencia 'test-jar' de la misma manera. Lo único que te preocupa es que el proyecto que produce el 'test-jar' debe construirse antes de que el proyecto lo consuma. – carlspring

+0

Bueno, si están completamente separados, debe haber algún mecanismo para que un proyecto encuentre _ los frascos de prueba. Pero de mi pregunta separada https://stackoverflow.com/q/46943636/421049 parece que usar 'mvn install' en realidad puede instalar el jarrón de prueba junto con los jars principales en el repositorio local, para que tenga sentido y permita que otros proyectos para encontrarlos. –

1

usted pone su código de prueba en el mismo proyecto que el código normal, en/src/test/java. Maven se encarga de no incluir el código de prueba en el paquete empaquetado. Si tiene dependencias que solo se utilizan para pruebas unitarias (p. Ej., Mockito, junit, etc.), entonces les da un alcance de "prueba" en las dependencias maven y estarán disponibles para las pruebas unitarias pero no incluidas en el jarro real .

0

supongo que podría haber perdido la bandera generatePom, tengo el mismo error pero finalmente el siguiente trabajé

mvn install:install-file 
    -Dfile=c:/primo/primo-1.0.0-SNAPSHOT.jar 
    -DgroupId=uk.bl.primo 
    -DartifactId=primo 
    -Dversion=1.0.0 
    -Dpackaging=jar 
    -DgeneratePom=true 
8
mvn install:install-file 
    -DgroupId=com.example 
    -DartifactId=example 
    -Dversion=1.2.3 
    -Dclassifier=tests 
    -Dpackaging=test-jar 
    -Dfile=example-1.2.3-tests.jar 
Cuestiones relacionadas