Ho bisogno di ottenere l'output dell'obiettivo "dependency: tree" di Maven all'inizio della fase di "test", per aiutare il debug di un problema per il quale ho bisogno per sapere quali versioni di tutto vengono utilizzate. In Ant sarebbe stato facile, ho guardato attraverso i documenti Maven e numerose risposte qui ma ancora non riesco a capirlo, sicuramente non è così difficile?Maven esegue "dependency: tree" all'inizio della fase "test"
risposta
Se si vuole essere sicuri che il dependency:tree
viene eseguito all'inizio della fase di test
allora si dovrà spostare la surefire:test
obiettivo originale ad essere condotta dopo il dependency:tree
. Per farlo dovrai inserire i plugin nell'ordine in cui devono essere eseguiti.
Questo è un esempio completo pom.xml
che aggiunge maven-dependency-plugin
prima dello maven-surefire-plugin
. L'originale default-test
è disattivato e viene aggiunto un nuovo custom-test
, che verrà eseguito dopo l'esecuzione dello 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 'scomoda ma che è il modo per disattivare esecuzioni.
Declare questo nel vostro 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 alcun plugin durante una fase di costruzione specifica. Vedi http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Plugins.
Vedere anche http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference per un elenco delle fasi di compilazione. Come sottolineato da maba, è necessario selezionare attentamente la fase per garantire che l'obiettivo venga eseguito al momento giusto.
Questo eseguirà 'dependency: tree' dopo i test effettivi. L'OP dice che vuole che funzioni all'inizio della fase di test. – maba
Buon punto. Invece poteva legarsi a 'test-compile' o anche' compile'. Spero che la comprensione del modello generale per collegare i plugin alle fasi sarà sufficiente per risolvere il problema. (Modificato la mia risposta). –
+1 per mostrare come aggiungere 'dependency: tree' alla fase' test'. Aggiungerò un'altra risposta che mostra come ottenere 'dependency: tree' all'inizio della fase' test'. – maba
Questa volontà di uscita l'albero di prova delle dipendenze:
mvn test dependency:tree -DskipTests=true
- 1. Maven Build different to Dependency Tree
- 2. Maven non esegue i test Spring Boot
- 3. Maven: Aggregation vs. dependency
- 4. maven dependency mancante jta-1.0.1b
- 5. Maven non esegue test di integrazione usando il plugin failsafe
- 6. Comando 'test' Maven che esegue solo i test non riusciti
- 7. In che modo Maven esegue un test dell'unità diverso dal test di integrazione?
- 8. Maven dependency spring-web vs spring-webmvc
- 9. Maven non eseguirà i test
- 10. FileNotFoundException esegue JBehave (Maven Project, IntelliJ)
- 11. Il plugin Maven surefire esegue test utilizzando più thread?
- 12. maven-dependency-plugin: copy tenta di copiare le classi
- 13. errore quando si esegue un GWTTestCase utilizzando Maven GWT plug
- 14. Lavoro Jenkins/Maven: esecuzione della suite di test due volte?
- 15. Eccezione con il plugin surefire con fase di test in
- 16. JUnit + Maven + Test parallelo Errore di esecuzione
- 17. Dependency Injection e lo sviluppo della produttività
- 18. Qual è la differenza tra repository e dependency in Maven?
- 19. test Clojure in Maven
- 20. Errore durante la risoluzione della versione per plugin 'maven-dependency-plugin: 2.8'
- 21. Maven porta "test" dipendenza transitiva come "compilazione"
- 22. Unità di test della fase di configurazione in AngularJS
- 23. Dipendenza del test Maven nel progetto multi-modulo
- 24. Come eseguire test non Java all'interno di Maven-failsafe?
- 25. Plugin Maven che esegue un altro plug-in
- 26. Esecuzione di una fase Maven specifica
- 27. spring boot dependency injection
- 28. Esegui Tomcat con Maven ed Eclipse - Fase del ciclo di vita sconosciuto
- 29. Determinazione della fase di esecuzione di Maven all'interno di un plugin
- 30. Esecuzione della suite di test JUnit utilizzando Maven
Stai dicendo che si desidera che il 'Maven-dipendenza-Plugin' per eseguire il' tree' obiettivo durante la fase di 'test'? – maba