Maven ejecutar la "dependencia:árbol" en el inicio de la "prueba" de la fase de

StackOverflow https://stackoverflow.com//questions/12687743

  •  12-12-2019
  •  | 
  •  

Pregunta

Tengo que conseguir la "dependencia:árbol de objetivo" de salida de Maven en el inicio de la "prueba" de fase, para ayudar a depurar un problema para el cual necesito saber qué versiones de todo lo que están siendo utilizados.

En Ant hubiera sido fácil, he mirado a través de Maven docs y numerosas respuestas aquí, pero todavía no puedo entenderlo, seguramente no es tan difícil?

¿Fue útil?

Solución

Si usted quiere estar seguro de que el dependency:tree se ejecuta en el inicio de la test fase de continuación, tendrá que mover el original surefire:test objetivo para ser llevado a cabo después de la dependency:tree.Para hacer esto usted tendrá que poner los plugins en el orden en que deben ejecutarse.

Aquí es un completo pom.xml ejemplo que añade la maven-dependency-plugin antes de la maven-surefire-plugin.El original default-test es discapacitado y un nuevo custom-test se agrega y esto va a ser ejecutado después de la dependency-tree de la ejecución.

<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 esa es la manera de deshabilitar las ejecuciones.

Otros consejos

Esto emitirá el árbol de dependencia de la prueba:

mvn test dependency:tree -DskipTests=true

Declarar, 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>

Usted puede adoptar este modelo para desencadenar algún plugin durante un determinado fase de construcción.Ver http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Plugins.

Ver también http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference para obtener una lista de las fases de construcción.Como maba puntos, usted necesita seleccionar cuidadosamente la fase de garantizar la tree la meta es ejecutada en el momento correcto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top