Necesito ejecutar jetty sin compilar las clases de prueba.
Respuestas:
134
De acuerdo con la documentación sobre el complemento Surefire de Maven, -Dmaven.test.skipdebería omitir tanto la compilación como la ejecución de las pruebas. Por el contrario, -DskipTestssimplemente omite la ejecución de la prueba : las pruebas aún se compilan.
+1 Sin embargo, odio los nombres. Para mí no es obvio por qué skipTestssimplemente omite la ejecución de las pruebas y maven.text.skipomite la compilación y ejecución de las pruebas. Siempre tengo que buscar cuál es cuál.
Joachim Sauer
18
Solo para ser explícitamente claro:
skipTestscompilará cualquier cosa en el <testSourceDirectory>, pero no lo ejecutará .
maven.test.skipse NO recopilar todas las pruebas, pero ejecutará las pruebas compiladas que hicieron su camino hacia el <testOutputDirectory>.
Entonces, el comportamiento de los 2 anteriores es opuesto. Solo quería señalar que maven.test.skipno se salta la compilación Y la ejecución si los archivos de prueba se descomprimen / copian / etc. en <testOutputDirectory>.
Además, dependiendo de la versión de Maven que use, también hay una maven.test.skip.exec=trueque también omite la ejecución de la prueba similar a skipTests.
Desafortunadamente, eso no es cierto, al menos en maven 3.0.5 y maven-compiler-plugin 3.5.1. Puede probarlo en cada proyecto que contenga pruebas: mvn clean package -DskipTests=true && mvn test -Dmaven.test.skip=truecompilará las pruebas (debido a la primera ejecución del paquete) pero no las ejecutará en el segundo comando. Suponiendo directorios estándar, target/test-classescontendrán todas las pruebas después, pero no se han ejecutado.
David Georg Reichelt
Esta es la respuesta correcta y debe aceptarse como tal
Artem
8
Ejecuta una fase que no incluye test-compile, por ejemplo compile.
Encontré una solución alternativa en otra pregunta , que en realidad anula la ejecución de un complemento al agregar el siguiente fragmento en su pom.xml de forma predeterminada:
Esto parece funcionar, pero definitivamente no deshabilita la fase, pero deshabilita las acciones predeterminadas que define un complemento en una fase específica.
Respuestas:
De acuerdo con la documentación sobre el complemento Surefire de Maven,
-Dmaven.test.skip
debería omitir tanto la compilación como la ejecución de las pruebas. Por el contrario,-DskipTests
simplemente omite la ejecución de la prueba : las pruebas aún se compilan.fuente
skipTests
simplemente omite la ejecución de las pruebas ymaven.text.skip
omite la compilación y ejecución de las pruebas. Siempre tengo que buscar cuál es cuál.Solo para ser explícitamente claro:
skipTests
compilará cualquier cosa en el<testSourceDirectory>
, pero no lo ejecutará .maven.test.skip
se NO recopilar todas las pruebas, pero ejecutará las pruebas compiladas que hicieron su camino hacia el<testOutputDirectory>
.Entonces, el comportamiento de los 2 anteriores es opuesto. Solo quería señalar que
maven.test.skip
no se salta la compilación Y la ejecución si los archivos de prueba se descomprimen / copian / etc. en<testOutputDirectory>
.Además, dependiendo de la versión de Maven que use, también hay una
maven.test.skip.exec=true
que también omite la ejecución de la prueba similar a skipTests.fuente
mvn clean package -DskipTests=true && mvn test -Dmaven.test.skip=true
compilará las pruebas (debido a la primera ejecución del paquete) pero no las ejecutará en el segundo comando. Suponiendo directorios estándar,target/test-classes
contendrán todas las pruebas después, pero no se han ejecutado.Ejecuta una fase que no incluye
test-compile
, por ejemplocompile
.fuente
No soy un experto en maven, pero lo que uso en mi proyecto actual es:
Dependiendo de su caso de uso usando:
podría funcionar para usted también.
fuente
Encontré una solución alternativa en otra pregunta , que en realidad anula la ejecución de un complemento al agregar el siguiente fragmento en su pom.xml de forma predeterminada:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <executions> <execution> <id>default-testCompile</id> <phase>none</phase> </execution> </executions> </plugin> </plugins> </build>
Esto parece funcionar, pero definitivamente no deshabilita la fase, pero deshabilita las acciones predeterminadas que define un complemento en una fase específica.
fuente