Existe-t-il un moyen simple de ne pas créer les classes de test?Maven - Ignorer les classes de test de construction
mvn clean install -Dmaven.test.skip=true
Walter
Existe-t-il un moyen simple de ne pas créer les classes de test?Maven - Ignorer les classes de test de construction
mvn clean install -Dmaven.test.skip=true
Walter
Selon le documentation sur le plugin Maven Surefire, -Dmaven.test.skip
devrait sauter à la fois la compilation et l'exécution des tests. En revanche, -DskipTests
saute simplement le test exécution: les tests sont toujours compilés.
+1 Je déteste le nom, cependant. Je ne comprends absolument pas pourquoi 'skipTests' saute simplement * les tests et' maven.text.skip' saute * compile et exécute * les tests. Je dois toujours chercher lequel est quoi. –
Je sais ce que tu veux dire! Je connaissais seulement cette réponse parce que j'ai regardé les docs plus tôt aujourd'hui;) – Daniel
Wow, je n'ai jamais remarqué cette différence subtile. Merci de l'avoir signalé (et +1). –
Juste pour être explicitement clair:
skipTests
compilera quoi que ce soit dans le <testSourceDirectory>
, mais ne sera pas exécuter les.
maven.test.skip
se PAS compiler tous les tests, mais exécutera des tests compilés qui ont fait leur chemin dans le <testOutputDirectory>
.
Donc le comportement de 2 ci-dessus est opposé. Je voulais juste faire remarquer que maven.test.skip
n'ignore pas la compilation et l'exécution si les fichiers de test sont déballés/copiés/etc. en <testOutputDirectory>
.
En outre, selon la version de votre Maven à l'aide, il y a aussi maven.test.skip.exec=true
qui permet de sauter plus l'exécution de test similaire à skipTests.
Ce n'est malheureusement pas vrai, au moins dans maven 3.0.5 et maven-compiler-plugin 3.5.1. Vous pouvez le tester dans chaque projet contenant des tests: 'mvn clean package -DskipTests = true && mvn test -Dmaven.test.skip = true' compilera les tests (à cause de la première exécution du paquet) mais ne les exécutera pas dans la seconde commander. En supposant des répertoires standards, 'target/test-classes' contiendra tous les tests par la suite, mais ils n'ont pas été exécutés. –
Je ne suis pas un expert à maven, mais ce que je l'utilise dans mon projet en cours est: En fonction de votre cas d'utilisation
mvn clean install -DskipTests=true
utilisant:
mvn compile -DskipTests=true
peut travailler pour vous aussi.
J'ai trouvé un travail autour dans un autre question, qui remplace en fait l'exécution d'un plug-in en ajoutant l'extrait suivant dans votre pom.xml par défaut:
<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>
Cela semble fonctionner mais ne certainement pas la phase de désactivation mais désactive les actions par défaut qu'un plugin définit à une phase spécifique.
ignorer la compilation ou ignorer l'exécution? – Bozho
Je dois lancer une jetée sans compiler les classes de test. –