Existe-t-il un moyen simple de ne pas construire les classes de test?
mvn clean install -Dmaven.test.skip=true
Walter
Selon le documentation du plugin Maven Surefire, -Dmaven.test.skip
devrait ignorer la compilation et l'exécution des tests. En revanche, -DskipTests
ignore simplement le test execution: les tests sont toujours compilés.
Juste pour être explicitement clair:
skipTests
compilera tout ce qui est dans le <testSourceDirectory>
, mais ne sera pas exécuté eux.
maven.test.skip
va PAS compiler tous les tests, mais va exécuter tous les tests compilés qui ont été insérés dans le <testOutputDirectory>
.
Donc, le comportement de ce qui précède 2 est opposé. Je voulais juste souligner que maven.test.skip
ne saute pas la compilation ET l'exécution si les fichiers de test sont décompressés/copiés/etc. dans <testOutputDirectory>
.
En outre, en fonction de la version de Maven que vous utilisez, il existe également maven.test.skip.exec=true
qui ignore également l'exécution du test similaire à skipTests.
Exécutez une phase qui n'inclut pas test-compile
, par exemple compile
.
mvn clean compile
Je ne suis pas un expert chez Maven, mais ce que j'utilise dans mon projet actuel est:
mvn clean install -DskipTests=true
En fonction de votre cas d'utilisation, utilisez:
mvn compile -DskipTests=true
pourrait travailler pour vous aussi.
J'ai trouvé une solution de contournement dans un autre question , qui remplace en réalité une exécution de plugin 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 désactive définitivement pas la phase mais désactive les actions par défaut qu'un plugin définit à une phase spécifique.