taglibs springframework sec org enablewebsecurity dependency maven

maven - springframework - sec authorize



Maven pruebas de omisiĆ³n (4)

Como notó, -Dmaven.test.skip=true omite la compilación de las pruebas. Más al punto, omite construir los artefactos de prueba. Una práctica común para proyectos grandes es tener utilidades de prueba y clases base compartidas entre módulos en el mismo proyecto.

Esto se logra haciendo que un módulo requiera un test-jar de test-jar de un módulo previamente construido:

<dependency> <groupId>org.myproject.mygroup</groupId> <artifactId>common</artifactId> <version>1.0</version> <type>test-jar</type> <scope>test</scope> </dependency>

Si se -Dmaven.test.skip=true (o simplemente -Dmaven.test.skip ), los -Dmaven.test.skip test-jar no se -Dmaven.test.skip , y cualquier módulo que dependa de ellos fallará en su compilación.

Estoy usando Maven 2.2.1 y para construir mi proyecto usé este comando

mvn clean install -Dmaven.test.skip=true

Sin embargo, la compilación falló diciendo que no pudo encontrar uno de los artefactos. Sin embargo, cuando utilicé:

mvn clean install -DskipTests

todo funcionó bien

Hasta ahora he estado pensando que estos 2 comandos son equivalentes. Sin embargo, este enlace parece sugerir que -Dmaven.test.skip=true también omite la compilación de los casos de prueba.

Sin embargo, eso todavía no me explica por qué un comando está funcionando y otro no. Estaré agradecido si alguien por favor me explica esto.


Durante la compilación de maven puede omitir la ejecución de la prueba agregando el siguiente complemento en pom.xml

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.20.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin>


Puedo darte un ejemplo que resulte con el mismo problema, pero puede que no te dé una respuesta a tu pregunta. (Además, en este ejemplo, estoy usando mi conocimiento de Maven 3, que puede no ser válido para Maven 2.)

En un proyecto maven de varios módulos (contiene los módulos A y B , donde B depende de A ), puede agregar también una dependencia de prueba en A desde B

Esta dependencia puede verse de la siguiente manera:

<dependency> <groupId>com.foo</groupId> <artifactId>A</artifactId> <type>test-jar</type> <!-- I''m not sure if there is such a thing in Maven 2, but there is definitely a way to achieve such dependency in Maven 2. --> <scope>test</scope> </dependency>

(para obtener más información, consulte https://maven.apache.org/guides/mini/guide-attached-tests.html )
Tenga en cuenta que el proyecto A produce un artefacto secundario con un clasificador donde se ubican las clases de prueba y los recursos de prueba.

Si construye su proyecto con -Dmaven.test.skip=true , obtendrá un error de resolución de dependencia siempre que el artefacto de prueba no se haya encontrado en su repositorio local o en repositorios externos. La razón es que las clases de prueba no se compilaron ni se produjo el artefacto de las tests .
Sin embargo, si ejecuta su compilación con -DskipTests su artefacto de tests (aunque las pruebas no se ejecutarán) y se resolverá la dependencia.


Tuve cierta interdependencia con las pruebas para construir el paquete.

El siguiente comando logra anular la necesidad del artefacto de prueba para completar el objetivo:

mvn -DskipTests=true package