Necesito obtener la salida de "dependencia: árbol" de Maven al inicio de la fase de "prueba", para ayudar a resolver un problema que necesito saber qué versiones de todo se están utilizando. En Ant habría sido fácil, he revisado los documentos de Maven y tengo muchas respuestas aquí, pero todavía no puedo entenderlo, ¿no es difícil?Maven ejecute "dependency: tree" al inicio de la fase de "prueba"
Respuesta
Si usted quiere estar seguro de que el dependency:tree
se está ejecutando en el comienzo de la fase test
entonces usted tendrá que mover el objetivo original surefire:test
de ser llevado a cabo después de la dependency:tree
. Para hacer eso, tendrás que poner los complementos en el orden en que deben ejecutarse.
Aquí hay un ejemplo completo de pom.xml
que agrega maven-dependency-plugin
antes del maven-surefire-plugin
. El default-test
original está deshabilitado y se agrega un nuevo custom-test
y este se ejecutará después de la ejecución dependency-tree
.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow</groupId>
<artifactId>Q12687743</artifactId>
<version>1.0-SNAPSHOT</version>
<name>${project.artifactId}-${project.version}</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>dependency-tree</id>
<phase>test</phase>
<goals>
<goal>tree</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.2</version>
<executions>
<execution>
<id>default-test</id>
<!-- Using phase none will disable the original default-test execution -->
<phase>none</phase>
</execution>
<execution>
<id>custom-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Es un poco incómodo, pero que es la manera de desactivar las ejecuciones.
nuevas de esto en su proyecto POM:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<phase>test-compile</phase>
<goals>
<goal>tree</goal>
</goals>
</execution>
</executions>
</plugin>
Puede adoptar este patrón para desencadenar ningún plugin durante una fase de organización específica. Ver http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Plugins.
Consulte también http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference para obtener una lista de las fases de compilación. Como señala maba, debe seleccionar cuidadosamente la fase para asegurarse de que el objetivo tree
se ejecute en el momento correcto.
Eso ejecutará 'dependency: tree' después de las pruebas reales. El OP dice que quiere que se ejecute al comienzo de la fase de prueba. – maba
Buen punto. En cambio, podría unirse a 'test-compile' o incluso' compile'. Esperemos que comprender el patrón general para unir plugins a fases sea suficiente para resolver el problema. (Editado mi respuesta). –
+1 para mostrar cómo agregar 'dependency: tree' a la fase' test'. Agregaré otra respuesta que le muestra cómo hacer que 'dependency: tree' se ejecute al principio de la fase' test'. – maba
Esta es la salida del árbol de dependencias prueba:
mvn test dependency:tree -DskipTests=true
- 1. Maven Build different to Dependency Tree
- 2. Cómo detener la fase de verificación de Maven al reconstruir el artefacto?
- 3. cómo integrar el manejo de TODO en la fase de prueba de maven?
- 4. maven-dependency-plugin: copy intenta copiar clases
- 5. Ejecutando una fase específica de Maven
- 6. Ejecutando exec-maven-plugin varias veces en una sola fase
- 7. Ejecute build.xml con Maven
- 8. Unidad de prueba de Android con Maven
- 9. Cómo excluir una fase del ciclo de vida de Maven
- 10. Encuentra la fase predeterminada que un complemento Maven vincula a
- 11. Cómo vincular el plugin maven antrun a la fase limpia
- 12. ¿Cómo puedo hacer que el manifiesto esté disponible durante una prueba unitaria Maven/Surefire ejecute la "prueba mvn"?
- 13. Determinación de la fase de ejecución de Maven dentro de un complemento
- 14. fase de prueba está en gris en Xcode 4
- 15. Dependencia de prueba de Maven en proyecto de varios módulos
- 16. Cómo omitir la fase del ciclo de vida en el módulo multi maven
- 17. Ejecute xfce en el inicio debian
- 18. Netbeans - ejecutar prueba de integración Maven específica
- 19. maven no puede agregar archivos en las fuentes generadas para la fase de compilación
- 20. Cómo pasar la entrada de la línea de comandos al programa de prueba junit maven
- 21. maven: Cómo agregar recursos que se generan después de la fase de compilación
- 22. Guía de inicio rápido de Maven
- 23. Maven: determina el orden de diferentes objetivos de complemento en la misma fase
- 24. SoapUI Mock integrado en la prueba de Maven
- 25. ¿Cómo conectar un plugin maven a una fase por defecto?
- 26. Cómo ejecutar una prueba individual en el objetivo de prueba de integración en maven
- 27. Maven: compilación y prueba en diferentes niveles de fuente
- 28. Excluir servlet-api del ámbito de prueba Maven
- 29. ¿Puedo modificar la fase de implementación de Maven para reemplazar el complemento maven-deploy con mi propio complemento?
- 30. Config Maven 2 para imprimir comandos javac durante la fase de compilación
¿Quiere decir que desea que el 'experto dependencia-Plugin' para ejecutar el' tree' meta durante la fase de 'test'? – maba