Domanda

Ho bisogno di ottenere la "dipendenza: albero" dell'ottuale output di Maven all'inizio della fase "Test", per contribuire a eseguire il debug di un problema per il quale ho bisogno di sapere quali versioni di tutto sono state utilizzate.

A formica sarebbe stato facile, ho guardato attraverso i Documenti Maven e numerose risposte qui, ma non riescono ancora capirlo, sicuramente non è così difficile?

È stato utile?

Soluzione

Se si desidera accertarsi che il dependency:tree venga eseguito nell'inizio della fase test, è necessario spostare l'obiettivo originale surefire:test per essere condotti dopo il dependency:tree.Per fare ciò dovrai mettere i plugin nell'ordine in cui dovrebbero essere eseguiti.

Ecco un esempio completo pom.xml che aggiunge il maven-dependency-plugin prima del maven-surefire-plugin.Il default-test originale è disabilitato e viene aggiunto un nuovo custom-test e questo verrà eseguito dopo l'esecuzione 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>
.


.

È un po 'imbarazzante, ma questo è il modo di disabilitare le esecuzioni.

Altri suggerimenti

Questo emetterà l'albero di dipendenza test:

mvn test dependency:tree -DskipTests=true
.

Dichiara questo nel tuo progetto 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>
.

È possibile adottare questo modello per attivare qualsiasi plug-in durante una fase di costruzione specifica.Vedi http://maven.apache.org/Guides/INTRODUZIONE / INTRODUZIONE-TO-THE-LifeCycle.html # plugin .

Vedi anche http://maven.apache.org / guide / introduzione / introduzione-to-the-lifecycle.html # lifecycle_reference per un elenco delle fasi di costruzione.Come sottolinea MABA, è necessario selezionare attentamente la fase per garantire che l'obiettivo tree sia eseguito al momento giusto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top