java - mvn - maven windows
Embalaje Maven sin prueba(pruebas de omisiĆ³n) (18)
Soy nuevo en Maven. Estoy tratando de empaquetar mi proyecto. Pero, automáticamente ejecuta las pruebas. Las pruebas insertan algo de contenido en la base de datos. Esto no es lo que quiero, necesito evitar ejecutar pruebas al empaquetar la aplicación. ¿Alguien sabe cómo ejecutar el paquete sin prueba?
En Intellij, vaya a Ver -> Ventanas de herramientas -> elija Proyectos de Maven. En el menú desplegable Lifecyle, haga clic con el botón derecho en el paquete -> elija Crear ''su [proyecto] [proyecto]'' ...
Ingrese este valor: package -Dmaven.test.skip=true -f pom.xml
en el campo Línea de comando. Haga clic en Aplicar y aparecerá el menú desplegable Ejecutar configuraciones junto con el comando creado personalizado de Maven.
La mejor y la forma más fácil de hacerlo, en IntelliJ Idea en la ventana "Proyecto Maven", y simplemente no haga clic en el botón de prueba. Espero haberte ayudado. Tenga un buen día :)
Las pruebas siempre deben [1] ejecutarse antes del paquete. Si necesitas desactivar las pruebas, estás haciendo algo mal. En otras palabras, estás tratando de resolver el problema incorrecto. Averigüe cuál es realmente su problema y haga esa pregunta. Suena como si estuviera relacionado con la base de datos.
[1] Puede omitir las pruebas cuando necesite generar rápidamente un artefacto para uso de desarrollo local, pero en general, la creación de un artefacto siempre debe seguir una ejecución de prueba exitosa.
Obviamente, lo estás haciendo de la manera incorrecta. Las pruebas son una parte importante del embalaje previo. No debes ignorarlo ni saltearlo, sino hacerlo de la manera correcta. Intente cambiar la base de datos en la que inserta los datos (como test_db). Puede tardar un rato en configurarlo. Y para asegurarse de que esta base de datos se pueda usar para siempre, debe eliminar todos los datos al final de las pruebas. JUnit4 tiene anotaciones que te lo ponen fácil. Utilice @Antes, @Después de @Test anotaciones para los métodos correctos. Necesitas dedicarle algún tiempo, ¡pero valdrá la pena!
Para el paquete de maven sin infectar la prueba de maven:
<properties>
<maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
Puede agregar -DskipTests
o -Dmaven.test.skip=true
a cualquier comando mvn
para omitir pruebas. En tu caso sería como a continuación:
mvn package -DskipTests
O
mvn package -Dmaven.test.skip=true
Puede pasar el indicador maven.test.skip
como un argumento JVM, para omitir las pruebas en ejecución cuando se ejecuta la fase del paquete (y las anteriores en el ciclo de vida predeterminado):
mvn package -Dmaven.test.skip=true
También puede pasar el indicador skipTests
solo al ejecutable mvn. Si desea incluir esta información en su POM, puede crear un nuevo perfil donde puede configurar el maven-surefire-plugin
para maven.apache.org/plugins/maven-surefire-plugin/examples/… .
Respondiendo una pregunta antigua y aceptada aquí. Puede agregar esto en su pom.xml si quiere evitar pasar el argumento de la línea de comandos todo el tiempo:
<properties>
<skipTests>true</skipTests>
</properties>
Sólo tienes que proporcionar
-Dmaven.test.skip
Ya no necesito el ''= true'' allí.
Si está intentando esto en Windows Powershell, obtendrá este error:
[ERROR] Unknown lifecycle phase ".test.skip=true". You must specify a valid lifecycle phase or a goal in the format...
La razón de esto es que, en Powershell, el " -
" tiene un significado especial y está causando problemas con el experto.
La solución es anteponerlo con un backtick (`), así.
mvn `-Dmaven.test.skip=true install
Simplemente proporcione el comando mencionado a continuación que ignorará la ejecución de los casos de prueba,
mvn package -DskipTests
Tenga en cuenta que -Dmaven.test.skip evita que Maven construya el artefacto de prueba-jar.
Si desea omitir las pruebas pero crear artefactos según un uso de compilación normal:
-Dmaven.test.skip.exec
puede agregar esta configuración de complemento a su pom si no desea establecer la línea de comando arg:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
sólo mvn clean install -DskipTests
mvn clean install -Dmaven.test.skip=true
Trabajó para mí ya que el -Dskip
ya no funcionaba.
Ejecute maven con -Dmaven.test.skip=true
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
También es una forma de agregar en el archivo pom
mvn package -Dmaven.test.skip=true