Uso el plugin maven para construir mi proyecto de forma que todas sus dependencias estén incluidas en un solo jar (esto hace que sea más fácil ejecutarlo en Hadoop). La sombra parece excluir mi código de prueba por defecto, lo cual es comprensible. Como me gustaría ejecutar pruebas de integración en mi clúster, espero configurar otro perfil para crear un jar separado para este propósito. ¿Hay alguna forma de configurar este complemento para incluir también el código de prueba?¿Cómo puedo configurar el plugin maven shade para incluir código de prueba en mi jar?
Respuesta
Trate include
ing sus paquetes de prueba como esta:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>org.apache.maven:*</include>
</includes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
No creo que esto funcione a menos que incluya incluir un artefacto que incluya código de prueba. Incluso entonces tendría que agregar una inclusión para cada una de mis dependencias, que es redundante. –
Con la versión 2.2 del experto-sombra-plugin, se añadió una opción "shadeTestJar" (ver MSHADE-158): http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#shadeTestJar
Sin embargo, traté de usar esto y no pude hacerlo funcionar. Aquí está mi plug-in config:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadeTestJar>true</shadeTestJar>
</configuration>
</execution>
</executions>
</plugin>
El archivo "...- tests.jar" no tiene entradas, pero la principal tarro de sombreado se ve bien (aunque no contiene ninguna clase de prueba).
Además, esta pregunta duplica esta otra pregunta, aunque la respuesta aceptada no es real satisfactoria: How to include test classes in Jar created by maven-shade-plugin?
También traté durante mucho tiempo este camino pero no pude hacerlo funcionar, terminé usando el plugin Assembly y funcionó bien, verifique mi solución aquí http://stackoverflow.com/a/36058365/5606016 –
he conseguido hacerlo funcionar añadiendo:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9.1</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.basedir}/src/test/java/</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
For para que funcione, las dependencias de prueba deben realizarse dependencias que no sean de prueba. – user411279
- 1. configure Maven Shade minimizeJar para incluir archivos de clase
- 2. Cómo incluir automáticamente el código generado xmlbeans en maven jar?
- 3. Advertencias superfluas cuando usas maven-shade-plugin
- 4. Problemas de Spring 3 NamespaceHandler con el plugin Maven Shade
- 5. Incluyendo una dependencia no mavenizada para que funcione con maven-shade-plugin
- 6. Maven exec plugin- ¿cómo incluir classpath "sistema"?
- 7. ¿Cómo incluir los archivos jar externos en el proceso de compilación de maven jar?
- 8. maven-jar-plugin incluye vs excluye
- 9. Maven: Cómo configurar native2ascii-maven-plugin
- 10. Maven javadoc plugin - ¿cómo puedo incluir solo ciertas clases?
- 11. Configurar el registro para el plugin maven de Jetty?
- 12. Cómo configurar class-path correctamente en maven-war-plugin
- 13. Maven-webstart-plugin para incluir dependencias de tiempo de ejecución
- 14. JAR en el paquete OSGi con Maven-haz-plugin
- 15. ¿Cómo puedo incluir pruebas unitarias en el ensamblaje de maven?
- 16. Cómo generar un JAR con el código fuente en Maven
- 17. Cómo configurar Git para incluir mi nombre en compromete
- 18. Generar el archivo de prueba junto con el archivo jar en el paquete de prueba
- 19. Incluir JAXB usando Maven
- 20. ¿Cómo puedo hacer que el contenedor de prueba incluya dependencias en Maven?
- 21. Cómo configurar Maven: ruta raíz de ensamblaje en el frasco
- 22. ¿Cómo configurar MAVEN?
- 23. ¿Cómo incluir CSS y jQuery en mi plugin de WordPress?
- 24. ¿Cómo puedo incluir apache-cxf como una dependencia en mi Maven pom?
- 25. Maven-assembly-plugin: nombres de archivo jar personalizados
- 26. Cómo copiar las dependencias jar (sin jars de prueba) a un directorio usando maven?
- 27. Maven "sombreado" JAR se antepone con "original" en el nombre de archivo
- 28. ¿Qué plugin maven uso para AspectJ?
- 29. Usando Maven para descargar JAR
- 30. Ejecutando prueba de selenio con maven-surefire-plugin o maven-failsafe-plugin?
Esto es más de un solución alternativa a una respuesta directa, pero terminé agregando un objetivo de prueba de jar al proyecto que contiene las pruebas y agregando otra dependencia en ese proyecto (con el clasificador de 'pruebas') a mi proyecto de pizarra. No es ideal, pero ahora mi tarro de pizarra también incluye pruebas. –
¿Puedes darnos un ejemplo de lo que hiciste? Soy nuevo en Maven y no entiendo cómo agregaría objetivos al proyecto o clasificadores a las dependencias. – divegeek
Añadir esto a la sección de construcción del pom cuyas pruebas desea volver a utilizar: ' experto-jar-plugin prueba de jarra paquete prueba de jarra ' confiar en que jarra de prueba con el clasificador "pruebas": ' com.abc bla 1.0 pruebas prueba ' –