Maven pominięcie testów
Najczęściej używane polecenie:
xxxxxxxxxx
mvn clean install -DskipTests=true
# or
# maven.test.skip jest chonorowany przez Surefire, Failsafe i Compiler Plugin:
mvn clean install -Dmaven.test.skip=true
W tym poście zobaczymy, jak pominąć testy jednostkowe, gdy budujemy nasz projekt za pomocą maven.
Najłatwiejszym sposobem pominięcia testów jednostkowych za pomocą maven jest użycie jednego z poleceń:
xxxxxxxxxx
mvn clean install -DskipTests=true
# lub
mvn install -DskipTests=true
mvn clean install -Dmaven.test.skip=true
# lub
mvn install -Dmaven.test.skip=true
lub
xxxxxxxxxx
mvn clean package -DskipTests=true
# lub
mvn package -DskipTests=true
mvn clean package -Dmaven.test.skip=true
# lub
mvn package -Dmaven.test.skip=true
Przykład polecenia maven clean:
xxxxxxxxxx
# przed uruchomieniem instalacji lub pakietu uruchom clean, aby wyczyścić katalog docelowy
$ mvn clean
Czasami możemy chcieć skompilować nasz projekt bez ponownego uruchamiania wszystkich testów jednostkowych.
Albo niektóre testy jednostkowe kończą się niepowodzeniem, a mimo to chcemy zbudować jar.
Jest kilka sposobów, aby to osiągnąć.
Maven -D parametr oznacza - zdefiniuj właściwość systemu za pomocą polecenia mvn -help.

Możemy uruchamiać komendy maven ze zdefiniowaną właściwością systemową:
xxxxxxxxxx
-Dmaven.test.skip=true
Poniżej mamy przykłady z instalacją mvn i pakietem mvn.
xxxxxxxxxx
$ mvn install -Dmaven.test.skip=true
# nasza kompilacja zostanie wykonana bez testów jednostkowych
xxxxxxxxxx
$ mvn package -Dmaven.test.skip=true
# nasza kompilacja zostanie wykonana bez testów jednostkowych
UWAGA: maven.test.skip jest honorowany przez:
- Maven Surefire Plugin
- Maven Failsafe Plugin
- Maven Compiler Plugin
Dodaj tę właściwość do pom.xml
xxxxxxxxxx
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
Kiedy mamy tę właściwość zdefiniowaną w naszym pom.xml, możemy uruchomić
xxxxxxxxxx
$ mvn install
# nasza kompilacja zostanie wykonana bez testów jednostkowych
lub
xxxxxxxxxx
$ mvn package
# nasza kompilacja zostanie wykonana bez testów jednostkowych
Maven zaakceptuje właściwość z pom.xml i pominie uruchamianie testów jednostkowych.
Dodaj tę właściwość xml do konfiguracji wtyczki Maven Surefire w pom.xml:
xxxxxxxxxx
<configuration>
<skipTests>true</skipTests>
</configuration>
Pełny przykład pom.xml, w którym musimy dodać tę konfigurację, aby pominąć testy jednostkowe:
xxxxxxxxxx
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<!-- HERE it goes -->
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
Co oznacza parametr maven -D?
To znaczy - zdefiniuj właściwość systemu.
xxxxxxxxxx
-D, --define <arg>
Aby zdefiniować właściwość, musimy użyć -D.
Synonimem parametru „-D” jest „--define”
Przykłady:
xxxxxxxxxx
$ mvn install -DskipTests=true
$ mvn install -DfailIfNoTests=false
Kiedy wykonamy mvn -help, otrzymamy opis wszystkich flag.
xxxxxxxxxx
$ mvn -help
..
..
-D, --define <arg> Define a system property
..
..
mvn clean
- usunie nasz katalog docelowy
mvn install
- zbuduje nasz jar + umieści go w katalogu docelowym i skopiuje do repozytorium maven .m2 na naszym komputerze, przykład ścieżki lokalnego repozytorium maven:
xxxxxxxxxx
C:\Users\seth\.m2\repository\com\dirask\0.0.1-SNAPSHOT\dirarsk-examples-0.0.1-SNAPSHOT.jar
mvn package
- zbuduje nasz jar + umieści go w docelowym katalogu, nic dodać nic ująć
Z dokumentacji Mavena:
install
- zainstaluj pakiet w lokalnym repozytorium, aby użyć go jako zależności w innych projektach lokalniepackage
- weź skompilowany kod i zapakuj go w formacie przeznaczonym do dystrybucji, takim jak JAR.
Dobrą praktyką jest uruchomienie komendy maven clean przed uruchomieniem komendy mvn install lub mvn package. Maven clean usunie nasz katalog docelowy iw ten sposób zapewnimy, że nasz kod i zasoby są świeżo skompilowane do katalogu docelowego.