Esiste un modo semplice per non creare le classi di test?Maven - Ignora classi di test di costruzione
mvn clean install -Dmaven.test.skip=true
Walter
Esiste un modo semplice per non creare le classi di test?Maven - Ignora classi di test di costruzione
mvn clean install -Dmaven.test.skip=true
Walter
Secondo la documentation sulla Maven Surefire plugin, -Dmaven.test.skip
dovrebbe saltare sia compilazione e l'esecuzione dei test. Al contrario, -DskipTests
salta il test esecuzione: i test sono ancora compilati.
+1 Odio la denominazione, tuttavia. Per me non è affatto ovvio perché 'skipTests' salta * eseguendo * i test e' maven.text.skip' salta * compilando ed eseguendo * i test. Devo sempre cercare qual è quello. –
So cosa intendi! Sapevo solo questa risposta perché ho visto i documenti all'inizio di oggi;) – Daniel
Wow, non ho mai notato questa sottile differenza. Grazie per averlo indicato (e +1). –
Giusto per essere in modo inequivocabile:
skipTests
compilerà nulla nel <testSourceDirectory>
, ma non eseguirà loro.
maven.test.skip
sarà NON compilare alcun test, ma eseguirà qualsiasi test compilati che hanno fatto la loro strada nel <testOutputDirectory>
.
Quindi il comportamento del precedente 2 è opposto. Volevo solo sottolineare che maven.test.skip
non salta la compilazione E l'esecuzione se i file di test sono scompattati/copiati/ecc. in <testOutputDirectory>
.
Inoltre, a seconda della versione di Maven utilizzata, c'è anche maven.test.skip.exec=true
che ignora inoltre l'esecuzione del test simile a skipTests.
Questo purtroppo non è vero, almeno in Maven 3.0.5 e maven-compilatore-plugin 3.5.1. Puoi testarlo in ogni progetto contenente test: 'pacchetto mvn clean -DskipTests = true && mvn test -Dmaven.test.skip = true' compilerà i test (a causa della prima esecuzione del pacchetto) ma non li eseguirà nel secondo comando. Supponendo che le directory standard, 'target/test-classes' conterranno tutti i test in seguito, ma non sono stati eseguiti. –
Io non sono un esperto a Maven, ma quello che uso nel mio progetto attuale è:
mvn clean install -DskipTests=true
A seconda del caso d'uso con:
mvn compile -DskipTests=true
potrebbe funzionare anche per te.
Ho trovato un work-around in un altro question, che sostituisce in realtà un plugin di esecuzione aggiungendo il seguente frammento nel pom.xml per impostazione predefinita:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
Questo sembra funzionare, ma sicuramente non lo fa fase di disabilitazione ma disabilita le azioni predefinite che un plugin definisce in una fase specifica.
saltare la compilazione o saltare l'esecuzione? – Bozho
Ho bisogno di eseguire jetty senza compilare le classi di test. –